web-dev-qa-db-ja.com

いいえAPTパペットでお勧めします

私はpuppetを使用して、仕事中の多数のDebianサーバーを管理しています。その一部には、パッケージのインストールが含まれています。複数のシステムにインストールするパッケージの1つは、ファイアウォールルールが正しく設定されていることを確認するために使用されるnmapです。 Debian 7.0では、APT :: Install-Recommendsが有効になっていると、nmapと一緒にたくさんのがらくたを取得します(以下を参照)。

推奨を有効にしてnmapをインストールするすべてのがらくたを含めたくありません。 1つの解決策は、apt構成をAPT::Install-Recommends "0";で更新することです。しかし、これをデフォルトにしたくありません。私が望む時間の大部分は含まれています。推奨されるパッケージはほとんど問題なく、必要のないものがたくさんありません。しかし、私が欲しくない/必要としないと思うパッケージがいくつかあります。

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

'apt'パッケージプロバイダーを使用するときに、推奨がpuppetを介してインストールされるかどうかを制御する方法はありますか? 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]? 

おすすめなし

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]?
8
Zoredache

これは、Puppetの「パッケージ」タイプの「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

9
Tim Donohue

私はこれまでに次の解決策を見つけましたが、それらは理想的ではありません。

最近追加されたパッチ がリリースバージョンになり、アップグレードされるまで待ちます。

  • PRO:これは正しい方法です
  • CON:待つか、ローカルでセットアップにパッチを適用する必要があります。

パッケージの代わりにexecを使用してインストールし、execを使用するだけです。

  • PRO:エラーチェックを気にしないのであれば簡単に行えます。
  • CON:インストールにはかなり複雑なコマンドラインが必要であり、自動的にアップグレードするのではなく、インストールエラーを適切に処理します。

Apt構成をグローバルに更新し、時間をかけて不足しているものをすべて見つけ、マニフェストを調整して、推奨されることによってのみインストールされるようにしたいパッケージもインストールします。

  • PRO:私のマニフェストはより具体的で、システムの状態をより正確に反映しています
  • CON:この新しい現実を反映するようにマニフェスト/構成を修正するには、取るに足らない時間/労力がかかります。

Puppetを実行する前に、APT_CONFIG環境変数を設定してください。

  • PRO:cronで開始されたパペットを使用している場合は、簡単に設定できます
  • PRO:aptを手動で使用しても動作は変わりません
  • CON:テスト目的でAPTを手動で実行する場合、設定を忘れがちです。
  • CON:グローバル構成を更新する場合と同様に、すべてのマニフェストを修正する必要があります。
3
Zoredache