私はVagrantを使ってPuppetを試しています。私はPuppetを初めて使う人です。Puppetをインストールした直後にモジュールのクラスを使用するには?
私は私の人形にモジュールをインストールしていますが、アプローチを使用してマニフェストで提案:私はすぐに、モジュールをインポートしようとしています
$dsesterojava = 'dsestero-java'
exec { 'dsestero-java':
command => "puppet module install ${dsesterojava}",
unless => "puppet module list | grep ${dsesterojava}",
path => ['/usr/bin', '/bin']
}
include java::java_7
:Can I install puppet modules through puppet manifest?
私default.ppのようなものが含まれていますそれに定義されているクラスを使用します。
現在、私が取得:
Error: Could not find class java::java_7
私はそれには、ラインと再実行をコメントアウトした場合。モジュールがインストールされます。コメントを削除してプロビジョニングをもう一度実行すると、正常に機能します。
「チキンと卵」という状況があります。モジュールをインストールする同じパペットマニフェストでモジュールを使用できますか?
どうすれば解決できますか?
いいえ、できません。カタログがコンパイルされると、Puppetは必要なコードとデータをすべて検索します。 'java'モジュールはカタログアプリケーションまで存在しないので、それに依存するカタログのコンパイルは失敗します。あなたは絶対にここで「鶏と卵」の状況を扱っています。 PuppetコードをインストールするためにPuppetコードを使用することを強くお勧めします。 –
さらに、あなたが提供したリンクは、このアプローチを示唆するのではなく、図書館員の人形を使用することを提案しています。このアプローチ(またはその後継のr10kとコードマネージャ)は、このアプローチよりも強く推奨されます。 –
ありがとう@MattSchuchard。私はちょうど人形師を学んでいるだけですが、私たちは現地の人形劇団を持っています。私はちょうどr10kを使っていることを発見しました。 –