繁体   English   中英

木偶事实,如何从Yaml文件设置自定义事实?

[英]Puppet facter, how to set custom facts from yaml file?

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

如何从yml文件设置自定义事实? 如果我做不到,是否有其他方法可以设置事实,而不必构建都通过Facter.add函数运行的自定义红宝石脚本?

这些类型的事实称为“外部事实”。 它们可以是可执行文件,也可以是文本或受支持的标记格式的文件。 存储它们的正确位置在相关模块内的facts.d目录中。 请在此处注意有关存储外部事实的文档: https : //docs.puppet.com/facter/3.8/custom_facts.html#fact-locations 这些事实文件将自动复制到客户端节点,并在Puppet代理执行开始附近的pluginsync期间加载。 回想一下,对于包含此模块所在模块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 您还可以通过Facter facter -p使用Facter的puppet插件参数在客户端上查看它们。

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

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

my_fact: 42

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM