我知道如何使用.rb
文件正常创建自定义事实。
但我对时间表有疑问:
> Puppet agent checks-in
> Custom facts are created
> .pp files start to run
> in .pp file I update settings
> TODO based on these new settings update custom fact
我们希望在.pp
文件运行后,木偶事实代表系统。
根据我的经验,我可以从.pp
访问节点的事实,这使我认为在.pp
应用之前收集了事实。
在结束登记过程之前,facter是否会更新事实?
是否可以从.pp
文件设置事实?
注意:我将从puppet agent而不是puppet服务器访问这些事实值。
答案 0 :(得分:2)
我们希望puppet事实代表.pp文件之后的系统 运行
他们将 - 在您的目录应用后下次运行Facter。
根据我的经验,我可以从.pp中获取节点的事实 我认为事实是在应用.pp之前收集的。
在明确评估开始之前收集事实。这样它们在目录构建过程中就可以使用。
在结束签到过程之前,facter会更新事实吗? 好?
是否可以从.pp文件设置事实?
您可以在清单文件中设置变量,包括在顶级范围内。然后可以访问这些内容以通知和指导目录构建过程,并且可以将它们合并到资源中,例如形成文件的名称或内容的一部分。它们不能作为变量作为变量在目录构建之外访问。
您还可以通过提供外部事实实现的清单文件来声明资源。通过这种方式,您可以提供将由 future Facter运行报告的事实的自定义,但您无法添加或更改通知当前目录运行的事实。
注意:我将从木偶代理而不是木偶中访问这些事实值 服务器
您可以在安装了Puppet的任何计算机上直接运行Facter,以获取部分或全部该计算机的当前事实,但这超出了目录构建的范围。通知目录构建过程的事实都是在目录请求之前收集的。
答案 1 :(得分:0)
我找到了一个似乎是从puppet文件手动执行facter的解决方案:
exec { 'update puppet facts':
path => ['/bin','/usr/bin'],
command => 'facter',
}
基于Learning Puppet 4: A Guide to Configuration Management and Automation的摘录。
答案 2 :(得分:0)
由于 Puppet 5.5.18,您可以在 resubmit_facts=true
中设置 puppet.conf
,这将使代理在运行后也更新 PuppetDB 中的事实。
您可以在 PUP-5934 中阅读更多相关信息。