没有APTbuild议与木偶

我使用木偶来pipe理一大堆Debian服务器,部分(如果包括安装软件包的话)。 我在几个系统上安装的一个软件包是nmap,用来validation防火墙规则是否正确设置。 在Debian 7.0上,如果你启用了APT :: Install-Recommends,你会得到一大堆废话(参见下文)。

我不希望所有的安装nmapbuild议启用包括的废话。 一个解决scheme是用APT::Install-Recommends "0";更新我的aptconfigurationAPT::Install-Recommends "0"; 。 但我不希望这是默认的。 大部分时间我想要的build议包括在内。 推荐的软件包大部分都很好,而且我也没有收到大量我不需要的东西。 但是有几个软件包认为我不需要/需要。

  package { 'nmap': ensure => installed, require => Class['apt'], } 

有没有什么方法可以控制在使用“apt”包提供程序时,是否通过puppet安装了build议? 因为apt和aptitude并不完全兼容,所以我不想和aptitude提供者混在一起。

随着推荐

 root@fw-01:~# apt-get install nmap Reading package lists... Done Building dependency tree Reading state information... Done ... The following NEW packages will be installed: fonts-droid fonts-liberation ghostscript gnuplot gnuplot-nox groff gsfonts imagemagick imagemagick-common libblas3 libblas3gf libcroco3 libcupsimage2 libdjvulibre-text libdjvulibre21 libexiv2-12 libgfortran3 libgs9 libgs9-common libijs-0.35 libilmbase6 libjbig2dec0 liblcms1 liblcms2-2 liblensfun-data litesting firewall blensfun0 liblinear-tools liblinear1 liblqr-1-0 libmagickcore5 libmagickcore5-extra libmagickwand5 libnetpbm10 libopenexr6 libpaper-utils libpaper1 librsvg2-2 librsvg2-common libsvm-tools libwmf0.2-7 netpbm nmap poppler-data psutils ufraw-batch 0 upgraded, 45 newly installed, 0 to remove and 0 not upgraded. Need to get 32.0 MB of archives. After this operation, 93.8 MB of additional disk space will be used. Do you want to continue [Y/n]? 

没有build议

 root@fw-01:~# apt-get --no-install-recommends install nmap Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: libblas3 libblas3gf libgfortran3 liblinear1 Suggested packages: liblinear-dev Recommended packages: liblinear-tools The following NEW packages will be installed: libblas3 libblas3gf libgfortran3 liblinear1 nmap 0 upgraded, 5 newly installed, 0 to remove and 0 not upgraded. Need to get 4,405 kB of archives. After this operation, 17.4 MB of additional disk space will be used. Do you want to continue [Y/n]? 

现在可以通过Puppet“包”types中的“install_options”设置: http : //docs.puppetlabs.com/references/latest/type.html#package-attribute-install_options

例如:

 package { 'nmap': ensure => installed, install_options => ['--no-install-recommends'], } 

以上确保“–no-install-recommends”选项被传递给apt-get,它跳过了这个安装的推荐软件包: http : //manpages.ubuntu.com/manpages/precise/man8/apt-get .8.html

到目前为止,我find了以下解决scheme,但是它们并不理想。

等到最近添加的修补程序进入发行版本并升级。

  • PRO:这是正确的方法
  • CON:我必须等待,或者在本地修补我的设置。

只需使用一个exec来安装而不是使用package,然后使用一个exec。

  • PRO:如果您不担心错误检查,很简单。
  • CON:它需要一个非常复杂的命令行来安装,而不是自动升级,并且正常地处理安装错误。

全局更新我的aptconfiguration,并花时间find所有缺less的东西,并调整我的清单,以安装软件包我想只有被推荐安装。

  • PRO:我的清单更具体,更准确地反映了一个系统的状态
  • CON:修复我的清单/configuration以反映这个新的现实将花费不less的时间/精力。

运行puppet之前设置APT_CONFIG环境variables。

  • PRO:易于设置,如果你使用的是cron启动的傀儡
  • PRO:不会改变手动使用apt的行为
  • CON:手动运行APT时,容易忘记设置,以便进行testing。
  • CON:你必须修复所有的清单,就像更新全局configuration一样。