1

目标

目的是重用分层数组以避免代码重复。

尝试

以下数组已在 hiera.yaml 文件中定义:

hiera_array: 
  - host1
  - host2
  - host3

为了重用它,将 hiera_array 设置为由另一个 hiera 数组使用:

reuse::hiera_array:
  - "%{hiera('hiera_array')}"

预期结果

hiera_array如果或被reuse::hiera_array调用,文件之间应该没有差异:

文件名.erb

<%= scope.function_hiera(['reuse::hiera_array']).join("\n") %>

/路径/到/文件名

host1
host2
host3

目前的结果

然而,调用数组的 filename.erb 模板返回:

/路径/到/文件名

-host1
-host2
-host3
+["host1, host2, host3"]

从模板中删除join表明查找的 hiera 数组看起来不同:

["[\"host1\", \"host2\", \"host3\"]"]对比["host1", "host2", "host3"]

讨论

看起来 hiera_array 可以在["host1, host2, host3"]返回时重复使用,并且看起来像一个数组。但是 hiera 或 erb 函数<%= scope.function_hiera(['reuse::hiera_array']).join("\n") %>将其解释为字符串。

问题

如何在 Puppet 中重用 Hiera 数组?

4

0 回答 0