我有一个傀儡类“php”,如下所示:
类 php { 案例$操作系统{ Debian:{ 包 {'php5-common': 确保 => 最新, 提供者 => apt, } 包 {'php5-mysql': 确保 => 最新,提供程序 => apt} 包 {'php5-gd': 确保 => 最新,提供程序 => apt} 包 {'php5-fpm': 确保 => 最新,提供程序 => apt} 包 {'php5-mcrypt': 确保 => 最新,提供程序 => apt} 包 {'php5-memcache': 确保 => 最新,提供程序 => apt} } } 服务 {'php5-fpm': 确保 => 正在运行, 启用 => true, } }
我在 /etc/puppet/manifests/site.pp 中的节点配置中包含了 php 类
看起来像
节点‘示例’{ 包括 php }
当我在客户端上运行 puppet agent -t 时,它会安装软件包,但安装的软件包有点太多了。它还会安装 apache,但我不知道它从哪里获取的。我在 puppet 中没有针对 apache 的任何配置。
我猜它使用了 debian 的建议或建议,但我不确定,因为我在服务器上禁用了它。
猫> /etc/apt/apt.conf.d/01norecommend客户端的日志输出为
信息:正在检索插件 信息:在 /var/lib/puppet/lib/facter/pe_version.rb 中加载事实 信息:在 /var/lib/puppet/lib/facter/puppet_vardir.rb 中加载事实 信息:在 /var/lib/puppet/lib/facter/last_run.rb 中加载事实 信息:在 /var/lib/puppet/lib/facter/root_home.rb 中加载事实 信息:在 /var/lib/puppet/lib/facter/puppi_projects.rb 中加载事实 信息:在 /var/lib/puppet/lib/facter/facter_dot_d.rb 中加载事实 信息:缓存目录示例 信息:应用配置版本“1383041633” 错误:无法预取软件包提供程序‘apt’:US-ASCII 中的字节序列无效 注意:/Stage[main]/Php/Package[php5-mysql]/ensure:ensure 将 'purged' 更改为 'latest' 通知:/Stage[main]/Php/Package[php5-gd]/ensure:确保将“purged”更改为“latest” 注意:/Stage[main]/Php/Package[php5-mcrypt]/ensure:ensure 将 'purged' 更改为 'latest' 通知:/Stage[main]/Php/Package[php5-memcache]/ensure:确保将“purged”更改为“latest” 通知:/Stage[main]/Php/Package[php5-fpm]/ensure:确保将“purged”更改为“latest” 通知:目录运行完成需 11.31 秒之后将安装以下软件包
ii apache2-mpm-prefork 2.2.22-13 amd64 Apache HTTP Server - 传统非线程模型 ii apache2-utils 2.2.22-13 amd64 用于网络服务器的实用程序 ii apache2.2-bin 2.2.22-13 amd64 Apache HTTP Server 通用二进制文件 ii apache2.2-common 2.2.22-13 amd64 Apache HTTP 服务器通用文件 ii libapache2-mod-php5filter 5.4.4-14+deb7u5 amd64 服务器端,HTML 嵌入式脚本语言(apache 2 过滤模块) ii libapache2-mod-php5filter 5.4.4-14+deb7u5 amd64 服务器端,HTML 嵌入式脚本语言(apache 2 过滤模块) ii php5-common 5.4.4-14+deb7u5 amd64 从 php5 源代码构建的软件包的通用文件 ii php5-fpm 5.4.4-14+deb7u5 amd64 服务器端,HTML 嵌入式脚本语言(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。
你知道怎样才能让 puppet 正常安装软件包而不需要依赖 apache 吗?
答案1
php5-fpm
使用 先进行安装require
。
gd
、、和包需要虚拟包memcache
,它由或提供。mcrypt
mysql
phpapi-20100525
libapache2-mod-php5
php5-fpm
当您使用单个命令安装它们时,它已经安装了满足要求的其中一个软件包。当作为 Puppet 资源单独运行时,apt 被迫选择一个并选择 Apache 库。