我有一个puppet类“php”,如下所示:
class php {
case $ operatingsystem {
debian:{
包{'php5-common':
确保=>最新,
provider => apt,
}
package {'php5-mysql':ensure => latest,provider => apt}
package {'php5-gd':ensure => latest,provider => apt}
package {'php5-fpm':ensure => latest,provider => apt}
package {'php5-mcrypt':ensure => latest,provider => apt}
package {'php5-memcache':ensure => latest,provider => apt}
}
}
服务{'php5-fpm':
确保=>正在运行,
enable => true,
}
}
我将php类包含在/etc/puppet/manifests/site.pp中的节点configuration中
看起来像
节点“示例”{
包括PHP
}
当我在客户端上运行puppet agent -t时,会安装这些软件包,但是安装的太多了。 它也安装了Apache,我不知道它从哪里得到它。 我没有在puppet的任何configuration为Apache。
我想这是使用debian的build议或build议,但我不确定,因为我禁用了服务器上的。
cat> /etc/apt/apt.conf.d/01norecommend客户端上的日志输出是
信息:检索插件 信息:在/var/lib/puppet/lib/facter/pe_version.rb中加载事实 Info:将事实载入/var/lib/puppet/lib/facter/puppet_vardir.rb 信息:在/var/lib/puppet/lib/facter/last_run.rb中加载事实 Info:将事实载入/var/lib/puppet/lib/facter/root_home.rb Info:将事实载入/var/lib/puppet/lib/facter/puppi_projects.rb 信息:在/var/lib/puppet/lib/facter/facter_dot_d.rb中加载事实 信息:eample的高速caching目录 信息:应用configuration版本“1383041633” 错误:无法预取包提供者'apt':US-ASCII中的无效字节序列 注意:/ stage [main] / Php / Package [php5-mysql] /确保:确保已将“已清除”更改为“latest” 注意:/ stage [main] / Php / Package [php5-gd] /确保:确保已将“已清除”更改为“latest” 注意:/ stage [main] / Php / Package [php5-mcrypt] /确保:确保已将“已清除”更改为“latest” 注意:/ stage [main] / Php / Package [php5-memcache] /确保:确保已更改'已清除'为'latest' 注意:/ stage [main] / Php / Package [php5-fpm] /确保:确保已将“已清除”更改为“latest” 注意:完成的目录在11.31秒内运行之后安装以下软件包
ii apache2-mpm-prefork 2.2.22-13 amd64 Apache HTTP Server - 传统的非线程模型
ii apache2-utils 2.2.22-13 amd64实用程序的Web服务器
ii apache2.2-bin 2.2.22-13 amd64 Apache HTTP Server常见的二进制文件
ii apache2.2-common 2.2.22-13 amd64 Apache HTTP Server常用文件
ii libapache2-mod-php5filter 5.4.4-14 + deb7u5 amd64服务器端,embeddedHTML的脚本语言(apache 2 filter module)
ii libapache2-mod-php5filter 5.4.4-14 + deb7u5 amd64服务器端,embeddedHTML的脚本语言(apache 2 filter module)
ii php5-common 5.4.4-14 + deb7u5 amd64从php5源码构build的软件包的常见文件
ii php5-fpm 5.4.4-14 + deb7u5 amd64服务器端,HTMLembedded式脚本语言(FPM-CGI二进制)
ii php5-gd 5.4.4-14 + deb7u5 amd64用于php5的GD模块
ii php5-mcrypt 5.4.4-14 + deb7u5 amd64用于php5的MCrypt模块
ii php5-memcache 3.0.6-6 amd64用于PHP5的memcache扩展模块
ii php5-mysql 5.4.4-14 + deb7u5 amd64用于php5的MySQL模块当我运行apt-get install $ php-package-names时,它不会安装apache,就在我使用apache的时候。 这有点烦人,因为我打算使用nginx。
你有一个想法,我怎么能傀儡安装包通常没有Apache作为依赖?
使
php5-fpm安装在require的其他人之前。
gd,memcache,mcrypt和mysql包需要虚拟包phpapi-20100525,它由libapache2-mod-php5或php5-fpm。当您将它们安装在一个命令中时,它已经安装了满足要求的一个软件包。 当作为Puppet资源单独运行时,apt被迫select一个并selectApache库。