0

我想在 puppet master 端进行一些动态配置细节,然后再在 puppet 代理上进行部署。所以我想发送大量的配置细节以及代理的请求来掌握。在 puppet 中是否有正确的方法来做到这一点?

问候, Malintha Adiakri

4

2 回答 2

2

是的!有事实。这就是我使用它的方式,也是我认为最强大的方式,但还有其他方法可以定义新的事实。

例如,如果你想添加服务器的角色,那么你可以这样做 export FACTER_ROLE=jenkins

现在您可以看到该命令facter role将打印 jenkins。耶!运行 puppet 代理后,系统已知的所有事实都将传递给 thenpuppetmaster。请注意,服务木偶不会知道您刚刚定义的事实,因为它在其他范围内运行。

我将我的事实放入文件 .facts 并在申请之前获取它。
这是我从 cron 运行的脚本:

#!/bin/bash source /root/.facts puppet agent -t --server puppetmaster.example.com --pluginsync

于 2014-06-16T07:42:55.857 回答
1

虽然之前的答案是正确的,但我将其作为新答案打开,因为它很重要。在代理环境中定义FACTER_factname变量是覆盖某些事实的好方法。如果您希望将自己的事实用于生产目的,则应改为使用自定义事实

在其基本形式中,您可以通过将 Ruby 代码片段部署到您的 boxen 来使用它。为了更简单的方法,请特别注意外部事实。这些可能是您问题的最佳解决方案。

另请注意,从事实2开始,您可以在事实中包含复杂的数据结构,而不必将所有内容序列化为字符串。正如您所强调的,如果来自代理的数据量很大,那可能会有所帮助。

于 2014-06-16T08:04:17.017 回答