我正在阅读关于添加自定义事实的木偶文档 。 大部分信息似乎与在代理上运行的模块相关。
在我的情况下,我只是想要一个简单的环境variables,我可以从主节点为每个节点设置。 然后我的ENC会做一个PuppetDb查询来查看它应该服务的环境。
我可以这样做,还是所有的事实都来自代理?
我可以做到这一点,
是的,这是可能的。 人们可以在puppet模块中创build一个自定义的事实,例如运行一些ruby代码来获取已安装软件的版本:
MODULE_NAME / LIB / facter / customfact.rb
Facter.add("customfact") do setcode do 123 end end
上面的代码驻留在Puppetmaster上,当运行puppet时,例如十个不同的代理,结果,即123和每个节点的主机名将被注册在PuppetDB中,并可以在Puppetboard中查看。
或者所有事实都来自代理人?
没有自定义的事实存在于木偶大师
傀儡facts总是由代理人发送给主人的信息。 因此,你不能在傀儡方面设定一个事实。
但是,您可以select使用puppet收据configuration代理环境(例如,使用[puppet_config_providers] [1])。
puppet_config { 'agent/environment': value => $::puppet_environment, }
不过,只有在下一次傀儡运行时,才会考虑到这一变化。
[1] https://forge.puppet.com/camptocamp/puppet_config_providers