Puppet :这是生成外部事实的正确方法吗?
Puppet : Is this the correct way to generate external facts?
我对外部事实有些困惑。
在最简单的形式中,我可以在 facts.d 文件夹中创建一个 json 文件并让它运行。
但我需要通过一些创建 json 文件的 shell 脚本动态构建它。我已经创建了以下内容并让它开始工作,但我无法判断这是否是正确的方法:
shell facts.d 文件夹中的脚本
cat <<END>some_facts.yaml
---
myfacts_array:
END
for file in `some folder`
do
echo " - $file" >>some_facts.yaml
done
yaml 文件依次如下所示
---
myfacts_array:
- 123456
- 456789
这是实现此目标的正确方法吗?
Puppet 依靠 Facter 收集事实,包括外部事实。 Facter 仅从 3.5 版开始支持结构化、可执行的外部事实,该版本还不到两年的历史。如果您的 Facter 版本较旧,并且您无法升级,那么您需要找到一种解决方法,例如定期在外部事实目录中编写平面 YAML 或 JSON 文件。
如果你有合适的 Facter 版本,那么要执行的脚本必须
- 驻留在外部事实目录中
- 从适当的 shebang 行开始
- 可执行
- 生成格式正确的 YAML 或 JSON 输出表示一个散列,其键是事实名称,其值是关联的事实值。*
如果您提供的脚本源是一个完整的示例,那么它至少缺少一个 shebang 行,但输出似乎格式正确。除此之外,我没有任何评论关于你提出的是否"the right way"去做。
* YAML 或 JSON 需要以这种方式生成 结构化 事实。对于纯字符串事实,您可以改为输出 KEY
= VALUE
对,每行一个。
我对外部事实有些困惑。
在最简单的形式中,我可以在 facts.d 文件夹中创建一个 json 文件并让它运行。
但我需要通过一些创建 json 文件的 shell 脚本动态构建它。我已经创建了以下内容并让它开始工作,但我无法判断这是否是正确的方法:
shell facts.d 文件夹中的脚本
cat <<END>some_facts.yaml --- myfacts_array: END for file in `some folder` do echo " - $file" >>some_facts.yaml done
yaml 文件依次如下所示
--- myfacts_array: - 123456 - 456789
这是实现此目标的正确方法吗?
Puppet 依靠 Facter 收集事实,包括外部事实。 Facter 仅从 3.5 版开始支持结构化、可执行的外部事实,该版本还不到两年的历史。如果您的 Facter 版本较旧,并且您无法升级,那么您需要找到一种解决方法,例如定期在外部事实目录中编写平面 YAML 或 JSON 文件。
如果你有合适的 Facter 版本,那么要执行的脚本必须
- 驻留在外部事实目录中
- 从适当的 shebang 行开始
- 可执行
- 生成格式正确的 YAML 或 JSON 输出表示一个散列,其键是事实名称,其值是关联的事实值。*
如果您提供的脚本源是一个完整的示例,那么它至少缺少一个 shebang 行,但输出似乎格式正确。除此之外,我没有任何评论关于你提出的是否"the right way"去做。
* YAML 或 JSON 需要以这种方式生成 结构化 事实。对于纯字符串事实,您可以改为输出 KEY
= VALUE
对,每行一个。