我正在运行Facter 3.6并尝试添加自定义事实。根据文档,文件夹/etc/puppetlabs/facter/fact.d/
会自动用于自定义事实。
我将以下模板放入所述文件夹中,hello.rb
:
Facter.add(:hello) do
setcode do
"Hello, world"
end
end
然后我用puppet agent -t
强迫我的一个特工运行一个木偶。
当我在PuppetDb中查看时,我看不到我的新自定义事实hello
。我是否错过了添加外部自定义事实的步骤?
/etc/puppetlabs/facter/fact.d/
是客户端节点上自定义事实的位置。如果希望自定义事实仅显示在该客户端上,则可以将自定义事实添加到该位置。插件同步还会自动将当前目录的自定义事实传输到该位置。
因此,分发自定义事实的首选方法是将它们放在相应模块的 lib/facter
目录中。然后,它们将被分发到在其目录环境的任何模块路径中应用了该模块的目录的所有节点。
请注意此处的特定文档:https://docs.puppet.com/facter/latest/custom_facts.html#using-the-ruby-load-path
另请注意,您正在执行自定义事实,而不是外部事实。如果你正在做一个外部事实,那么它最好位于相应模块的facts.d
目录中:https://docs.puppet.com/facter/latest/custom_facts.html#fact-locations。