无法为Puppet代理程序使用不同的环境

3
我是一名有用的助手,可以为您翻译文本。

我有一个代理/主控设置。我已经在/etc/puppetlabs/code/environments/中创建了一个名为master的新环境。

master目录环境的environment.conf内容为:

modulepath = site:modules:$basemodulepath
manifest = manifests/site.pp

当我尝试运行puppet agent -t --environment master时,出现了一些错误。

Notice: Local environment: 'master' doesn't match server specified node environment 'production', switching agent to 'production'.
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Loading facts
Info: Caching catalog for node1.localpuppet.com
Info: Applying configuration version '1490712072'
Notice: Applied catalog in 0.67 seconds

我是 Puppet 的新手。我需要做哪些更改?

PE 控制台配置

1个回答

5
这是 Puppet Enterprise 的一个有趣特性,最近几年才出现。您必须在 PE 分类器中指定允许在 puppet.confpuppet agent -t --environment 参数中指定其目录环境的节点。
在分类器中的代理指定环境选项卡中(如上图底部所示),您可以为所有节点启用它。添加一条规则,选择name属性,使用正则表达式(~),然后使用匹配所有字符的正则表达式(.*)。填写完毕后,PE分类器将给出一些匹配节点的数量。应该是所有已订阅到您的主服务器的节点。记得点击右下角更新您的规则。现在,您的节点将能够从配置文件或CLI参数中使用master而不是production
话虽如此,如果您这样做是为了避免在使用 Code Manager 时将默认的 Git 分支命名为production,那么最好还是将分支重命名,因为那样更容易。

1
或者,可以在主机上指定所需的环境,而不是允许代理自行命名。我不确定如何在PE中实现这一点,但我想在GUI中肯定有一个选项。 - John Bollinger
感谢 @MattSchuchard。在生产环境选项卡中添加了 name ~ .* 这个条件后,问题得到解决。 - awwwd
1
我正在使用Puppet Open Source。你能指定如何在没有PE分类器的情况下完成这个吗? - Alex

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接