多くの人と同じように(私は願っています)、マニフェストを環境に分離することでPuppet4の準備をしています。私は、qa、ステージング、prodの3つの別々の環境を持つつもりです。マニフェストを最初に設定する際に、特定の環境を指すように環境のカスタムファクトを設定しました(つまり、環境をprodに設定する/etc/facter/facts.d/environmentを作成しました)。
$ environment変数を出力する単一のマニフェストを使用してテストを実行すると、カスタムファクトからの値が得られますが、エージェントがPuppet Masterと通信するときは、デフォルト環境の「本番環境」を使用しています。
なぜこれが起こっているのか考えはありますか?ファクトはENCとして使用できませんか?
$environment
変数は技術的には事実ではなく、エージェントによって事実ではなくpuppet.conf
から設定されます。 puppet.conf
ではなくエージェントのfacts.d
で編集する必要があります。
ENCはノードの環境を設定できます(エージェントが独自の環境として選択したものをオーバーライドします)が、マスターはエージェントではなく、ノードをオーバーライドするものである必要があります。