2017-11-22 29 views
2

私は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 

私はそれには、ラインと再実行をコメントアウトした場合。モジュールがインストールされます。コメントを削除してプロビジョニングをもう一度実行すると、正常に機能します。

チキンと卵」という状況があります。モジュールをインストールする同じパペットマニフェストでモジュールを使用できますか?

どうすれば解決できますか?

+1

いいえ、できません。カタログがコンパイルされると、Puppetは必要なコードとデータをすべて検索します。 'java'モジュールはカタログアプリケーションまで存在しないので、それに依存するカタログのコンパイルは失敗します。あなたは絶対にここで「鶏と卵」の状況を扱っています。 PuppetコードをインストールするためにPuppetコードを使用することを強くお勧めします。 –

+1

さらに、あなたが提供したリンクは、このアプローチを示唆するのではなく、図書館員の人形を使用することを提案しています。このアプローチ(またはその後継のr10kとコードマネージャ)は、このアプローチよりも強く推奨されます。 –

+0

ありがとう@MattSchuchard。私はちょうど人形師を学んでいるだけですが、私たちは現地の人形劇団を持っています。私はちょうどr10kを使っていることを発見しました。 –

答えて

3

いいえ、できません。カタログがコンパイルされると、Puppetは適切なディレクトリで必要なコードとデータをすべて検索します。 javaモジュールはカタログアプリケーションまで存在しないため、カタログに応じて(アプリケーションに先立って)コンパイルが失敗します。あなたは絶対にここで「鶏と卵」の状況を扱っています。 PuppetコードをインストールするためにPuppetコードを使用することを強くお勧めします。

あるいは、あなたの人形のモジュールをインストールして管理するための推奨されるアプローチは、これらのソリューションのいずれかを使用することである。

これらは、を使用している場合は、バージュラ内の問題も解決します。 VagrantインスタンスをPuppet Masterにサブスクライブします。

applyプロダクトをバゲントの内側に使用している場合は、別のルートに移動する必要があります。一番簡単な解決策は、Puppetのインストール後にmodule install経由でPuppetモジュールをインストールするためにshellプロビジョナを使用することです(Puppetを焼き付けた状態のVagrantボックスを使用している場合を除きます)。または、モジュールがインストールされているホストとディレクトリを共有したり、librarian-puppetまたはr10kの宝石をVagrantボックスにインストールしてから、適切なパスにインストールすることができます。私は要請に応じてこれらの詳細に行くことができます。

+1

ここでは、https://github.com/xorpaul/g10kを紹介します。これはGoで激しいr10k交換です。私はスイッチを作って振り返っていません。 –

+0

@AlexHarvey私は外出先で開発するのが嫌いですが、私はGossとServerspecのパフォーマンスをすでに見ていますので、ここで同様のことが起こっていると思います。私はPuppetがこれについて知っていて、それを内部化したいのか、少なくともコードマネージャを使ってこれをr10kのための交換可能なバックエンドにしたいのかを知る必要があります。どちらも私をエンタープライズ組織に売り込むことができます。とにかく、そこにすばらしい発見。 –

+0

さて、私はそれらについて、人形のコミュニティスラックについて話しました。数人の人が印象づけられたようでした。彼らはそれを内面化するべきです。 –

関連する問題