Puppet 安装了太多依赖项

Puppet 安装了太多依赖项

我有一个傀儡类“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,它由或提供。mcryptmysqlphpapi-20100525libapache2-mod-php5php5-fpm

当您使用单个命令安装它们时,它已经安装了满足要求的其中一个软件包。当作为 Puppet 资源单独运行时,apt 被迫选择一个并选择 Apache 库。

相关内容