私は現在、Puppetのディレクトリ環境機能を利用していない小さなpuppetmaster +クライアント構成を実行しています。私のパペットバージョンは3.6です。
私は以下を試しました:
environmentpath=$confdir/environments
をpuppet.conf
に追加しました$confdir/environments/
に必要なパスを作成しました(例:/etc/puppet/environments/production
)site.pp
)を本番環境に追加しましたpuppet agent -vt
を実行しました残念ながら、次のエラーが発生します。
Info: Retrieving pluginfacts
Error: /File[/var/lib/puppet/facts.d]: Could not evaluate: Could not retrieve information from environment production source(s) puppet://puppet/pluginfacts
Info: Retrieving plugin
Error: /File[/var/lib/puppet/lib]: Could not evaluate: Could not retrieve information from environment production source(s) puppet://puppet/plugins
Notice: /File[/var/lib/puppet/lib/puppet]: Dependency File[/var/lib/puppet/lib] has failures: true
Puppetの実行は失敗しませんが、完了する前にこれと同様のエラーをスクロールします。
現在の構成(モジュールとマニフェスト)を新しいproduction
環境に複製する背後にある私の考えのプロセスは、すべてのクライアントの$environment
変数をデフォルトでproduction
に設定する必要があるということです。これは欠陥のあるロジックですか?
Puppet Labsガイド に基づいて変換しました。
後世のために、私が見つけた修正は次のとおりです。
私は2つの簡単な間違いを犯しました:
私は(乗客を介して)パペットマスターを再起動しませんでした。これは、DebianWheezyのservice Apache2 restart
で簡単に実現できました。
再起動すると、パペットのリロードに関する問題を示す一連の新しいエラーが表示されました。関連情報を含むログファイルは、最終的にすべての場所の/var/log/syslog
で見つかりました。
ログは、/etc/puppet/manifests
へのアクセス許可に問題があることを示していました。 gitが空のフォルダーを削除し、site.pp
を/etc/puppet/environments/production/manifests/site.pp
に移行したので、gitはエラーをスローした/etc/puppet/manifests
フォルダーを削除したことがわかりました。
空のsite.pp
を/etc/puppet
のmanifests
フォルダーに追加して#3を修正しました。
3.6 puppetはディレクトリ環境を使用すると信じているので、puppet.confで構成せず、環境の下にディレクトリを作成するだけです。私はあなたが使うことができると思います: https://docs.puppetlabs.com/puppet/latest/reference/environments_configuring.html
微妙に異なります。私もフォアマンであるENCを使用しているので、これはあなたにとって異なるかもしれませんが、おそらくあなたの環境ではなく、グローバルモジュールディレクトリにsite.ppが必要です。モジュールは環境にあり、site.ppなどはグローバルモジュールディレクトリにあります。