http://puppetlabs.com/blog/git-workflow-and-puppet-environments/ をガイドとして使用して動的環境をセットアップしようとしています。残念ながら、私は自分が何をしているのか完全には明確ではありません。
/ etc/puppetlabs/puppet/environment /にあるpuppetmasterにディレクトリを作成しました。
上記のドキュメントの構成例を、パペットマスターのpuppet.confファイルにコピーしました。ドキュメントの各セクションの3行をpuppet.confファイルのそれぞれのセクションに追加し、システムに合わせて変更を加えました(パスなど)。これらの変更の前は、default-post-で作業していました。 puppet.confのインストールコピー
クライアントマシンまたはサーバーからpuppetagent -t --noopを実行しようとすると、次のエラーが発生します。
err: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not find class pe_compliance for puppet-test-01.mydomain.net on node puppet-test-01.mydomain.net
warning: Not using cache on failed catalog
err: Could not retrieve catalog; skipping run
これらすべてを取り除き、マスターのpuppet.confファイルに手動で環境を配置すると、クライアントのpuppet.confファイルにenvironment = testenv
を追加でき、新しい環境が得られると思います。 ...しかし、Web UIにはそのようなものは見当たりません...したがって、これが機能しているかどうかもわかりません。
私は何をしているのですか?次に何をする必要がありますか
Puppet Enterpriseには、物事が正しく機能するために存在しなければならないモジュールがいくつかあります。
それらをすべての環境の$ modulepathにコピーするか、OR環境ごとのパスにデフォルトパスを追加する)のいずれかを行う必要があります。
Puppet Enterpriseのデフォルトのモジュールパスは( ドキュメント による)/etc/puppetlabs/puppet/modules:/opt/puppet/share/puppet/modules
です。
次のように、これを環境に追加する必要があります。
modulepath = /etc/puppet/environments/production/modules:/etc/puppetlabs/puppet/modules:/opt/puppet/share/puppet/modules
次のように、[master]
セクションで設定された単一のモジュールパスを使用することをお勧めします。
modulepath = $confdir/environments/$environment/modules:/etc/puppetlabs/puppet/modules:/opt/puppet/share/puppet/modules
これは、構成ファイルに入力する必要が少ないことを意味するだけでなく、必要に応じて新しい環境を追加することも簡単になります。また、デフォルトのモジュールパスをそのままにしておくことで、すべてのPE固有のモジュールをすべての環境にコピーする必要がなくなります。