和许多人一样(我希望如此),我正在为 Puppet 4 做准备,将清单分离到环境中。我打算拥有 3 个独立的环境:qa、staging、prod。在最初设置清单时,我为环境设置了一个自定义事实以指向特定环境(即创建了将环境设置为 prod 的 /etc/facter/facts.d/environment)。
当我使用打印出 $environment 变量的单个清单运行测试时,它会给我来自自定义事实的值,但是当代理与 Puppet Master 对话时,它仍然使用默认环境“生产”。
知道为什么会发生这种情况吗?facter 不能用作 ENC 吗?
答案1
从技术上讲,该$environment
变量不是事实 - 它由代理从其 而不是事实中设置puppet.conf
。您需要在代理的puppet.conf
而不是中编辑它facts.d
。
ENC 可以设置节点的环境(覆盖代理选择为其自身环境的环境),但主节点需要覆盖它,而不是代理。