it-swarm-ja.com

puppetを使用してソースパッケージをインストールします

サーバーをインストールするために、ソースパッケージ(geos、GeoIP、pyバインディング)をwgetしてコンパイルする必要があります。パッケージソースを取得してコンパイルするための事前定義されたpuppetクラスはありますか?

6
paweloque

見て:

https://github.com/example42/puppi/blob/master/manifests/netinstall.pp

使用例:

netinstall { 'postgis':
  url => 'http://postgis.refractions.net/download/postgis-1.5.5.tar.gz',
  extracted_dir => 'postgis-1.5.5',
  destination_dir => '/tmp',
  postextract_command => '/tmp/postgis-1.5.5/configure && make && Sudo make install'
}
9
maersu

Puppetは、ターゲットシステムでソースパッケージをコンパイルするための最良のツールではないようです。おそらく最善のアプローチは、debパッケージまたはターゲットシステムが期待するものを提供し、puppetを使用してパッケージをインストールすることです。

Puppetを使用してソフトウェアをコンパイルする際の問題は、puppetを使用していくつかのexec {}コマンドを実行する必要があることです。システム内のいくつかの事実(ファイルが存在するか、サービスが存在するかどうかなど)に基づいて、execを実行する必要があるかどうかを判断する必要があるたびに。中間ステップの結果が表示されなくなる可能性があるため、これは非常に面倒で、ソースのコンパイルでエラーが発生しやすくなります。したがって、ソースのコンパイルとインストールについて信頼できる事実を判断することは困難です。

2
paweloque