web-dev-qa-db-ja.com

人形と動的環境

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にはそのようなものは見当たりません...したがって、これが機能しているかどうかもわかりません。

私は何をしているのですか?次に何をする必要がありますか

1
TheWellington

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固有のモジュールをすべての環境にコピーする必要がなくなります。

3
Lee Lowder