2

我正在运行 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。我是否错过了添加外部自定义事实的步骤?

4

1 回答 1

2

/etc/puppetlabs/facter/fact.d/是客户端节点上自定义事实的位置。如果您希望自定义事实仅出现在该客户端上,则可以将自定义事实添加到该位置。Pluginsync 还将自动将当前目录的自定义事实传输到该位置。

因此,分发自定义事实的首选方法是将它们放在相应模块的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 。

于 2017-05-12T16:16:24.737 回答