Puppet facter,如何从yaml文件设置自定义事实?

Puppet facter,如何从yaml文件设置自定义事实?,yaml,puppet,facter,Yaml,Puppet,Facter,我希望能够为puppet设置一些不同的自定义事实。看起来有一种方法可以在yaml文件中列出所有这些内容,然后将它们加载进去,但没有确切的命令来执行此操作 如何从yml文件设置自定义事实?如果我做不到这一点,有没有其他方法可以设置事实,而不必构建自定义ruby脚本,所有脚本都通过Facter.add函数运行?您可以将事实写入目录中的yaml文件中 例如,您可以创建一个/etc/facter/facts.d/my\u custom\u fact.yaml: my_fact: 42 这将创建一个值为

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


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

您可以将事实写入目录中的yaml文件中

例如,您可以创建一个
/etc/facter/facts.d/my\u custom\u fact.yaml

my_fact: 42
这将创建一个值为42的事实my_fact


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

您只需将事实写入目录中的yaml文件中即可

例如,您可以创建一个
/etc/facter/facts.d/my\u custom\u fact.yaml

my_fact: 42
这将创建一个值为42的事实my_fact


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

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

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

foo
|__facts.d
   |__ bar.yaml
   |__ bar.json
   |__ bar.txt
示例内容如下所示:

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



然后,您可以按照常规在伪代码中使用这些事实,如
$facts['fact\u name']
或在旧的Facter
$::fact\u name
。您还可以通过
Facter-p

在客户端上使用Facter的puppet plugin参数查看它们。这些类型的事实称为“外部事实”。它们可以是可执行文件,也可以是文本或支持的标记格式的文件。存储它们的正确位置在相关模块的
facts.d
目录中。请注意此处有关外部事实存储位置的文档:。这些事实文件将自动复制到客户端节点,并在Puppet代理执行开始时的pluginsync期间加载。回想一下,对于包含此模块所在的
modulepath
的任何目录(通常是相关目录环境),都会发生这种情况

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

foo
|__facts.d
   |__ bar.yaml
   |__ bar.json
   |__ bar.txt
示例内容如下所示:

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


然后,您可以按照常规在伪代码中使用这些事实,如
$facts['fact\u name']
或在旧的Facter
$::fact\u name
。您还可以通过
Facter-p
在客户端上使用puppet-plugin参数对Facter进行查看