傀儡事实,如何从yaml文件设置自定义事实?



我希望能够为木偶设置许多不同的自定义事实。 看起来有一种方法可以在yaml文件中列出所有这些,然后加载它们,但是文档没有确切的命令来执行此操作。

如何从 yml 文件设置自定义事实? 如果我不能做到这一点,有没有其他方法可以设置事实,而不必构建所有通过Facter.add函数运行的自定义 ruby 脚本?

这些类型的事实被称为"外部事实"。它们可以是可执行文件,也可以是文本或支持的标记格式的文件。存储它们的正确位置位于相关模块的facts.d目录中。请注意此处有关在何处存储外部事实的文档:https://docs.puppet.com/facter/3.8/custom_facts.html#fact-locations。这些事实文件将自动复制到客户端节点,并在 Puppet 代理执行开始附近的插件同步期间加载。回想一下,对于包含此模块所在modulepath的任何目录(通常是相关目录环境(,都会发生这种情况。

给定一个示例模块foo,目录结构如下所示:

foo
|__facts.d
|__ bar.yaml
|__ bar.json
|__ bar.txt

示例内容如下所示:

# foo/facts.d/bar.yaml
fact_name: fact_value

# foo/facts.d/bar.json
{
fact_name: fact_value
}

# foo/facts.d/bar.txt
fact_name=fact_value

然后,您可以在 Puppet 代码(如$facts['fact_name'](或较旧的 Facter$::fact_name中正常使用这些事实。您还可以在客户端上使用 puppet 插件参数通过facter -p查看它们。

您可以将事实写入 facts.d 目录中的 yaml 文件中。

例如,您可以创建一个/etc/facter/facts.d/my_custom_fact.yaml

my_fact: 42

这将创建一个事实my_fact,值为 42。

您可以通过键入facter来检查它是否有效,并检查您是否存在。

相关内容

  • 没有找到相关文章

最新更新