私はマスターとその両方(テストとプロード)の環境を使用しています。両方の環境(両方の環境で同じ)のためenvironment.conf
が含まれていますパペットノードが見つからない、デフォルトのノードが使用されていない
modulepath = ./modules:../common/modules
manifest = ./main.pp
main.pp
ファイル(も同じ)は含まれています
include(lookup('classes', { 'merge' => 'unique' }))
node default { }
私は現在、文字通り1行だけですENCシェルスクリプトを持っていますノードに使用する環境を出力します。実際には不要と思われる環境はpuppet.conf
であるため、ENCを削除しようとしています。マスタ上でpuppet agent
を実行すると、ENCが設定されていなくても正常に動作します。
Error: Could not retrieve catalog from remote server: Error 500 on SERVER: Server Error: Failed when searching for node [...]: You must set the 'external_nodes' parameter to use the external node terminus
でもそれ、私は両方の環境でdefault
ノードをコメントアウト、私はまだ、このエラーが出る:私はマスターに設定されたENCせずに、新しいノード上でpuppet agent
を実行しようとすると、しかし、私はこの応答を取得します。 puppet agent
コマンドラインや[master]
の環境を新しいノードのpuppet.conf
に指定しても、同じエラーが発生します。
私はHieraを使用しています。新しいノードのHiera用のノードファイルがありますが、これはノード定義を提供していません(私が知る限り)。したがって、 。 default
ノードを使用し、Hieraからクラスを取得することが期待されます。
私の質問は、なぜ私にこのエラーを与えているのでしょうか?デフォルトのノードを使用しないでください。
アップデート1:ここでは
は、分散されますpuppet.conf
です:
[agent]
server = puppet-prod.foo.com
[main]
environment = prod
[master]
dns_alt_names = puppet-prod,puppet-prod.foo.com
これらは私がENCを取り除くために削除された行です:
external_nodes = /usr/local/bin/puppet-node-classifier
node_terminus = exec
trusted_server_facts = true
Welp、それは多分人形は、いくつかの構成情報をキャッシュされたように見え、それはそれがないと言うとき、それをすべてを再ロードしません。それを再起動すると(デバッグするために '--no-daemonize --verbose'を実行していました) – Josh
マスターを再起動して問題を解決したので、私は再現性のないものとして閉じるよう投票しています。 –
技術的には再現可能ですが、ENCの設定でPuppetを起動してから、再起動せずに設定を変更してください。しかし、私はそれを閉じてうまくいく。 – Josh