4

我正在使用带有 YAML 后端的 hiera 来管理我的 Puppet 配置,并且我想将一些值附加到数组中。

我有一个看起来有点像这样的配置文件:

---
some_config:
  - one
  - two
  - three

some_more_config:
  - one
  - two
  - three
  - four

wheresome_more_config总是 的超集some_config

我想改进这个文件以删除重复但我还没有弄清楚它是否可能或语法是什么:

---
some_config:
  - one
  - two
  - three

some_more_config:
  - "%{::some_config}"
  - four

用文字而不是代码来说,some_more_config是整个内容some_config加一个附加值。

4

1 回答 1

1

我认为你不能在 Hiera 中做到这一点,因为它只能插入基于字符串的信息(数字转换为字符串)而不是数组或哈希。

来自Hiera 3:插值标记、变量和查找函数

Hiera 可以插入任何 Puppet 数据类型的值,但该值将被转换为字符串。

不过,您仍然可以通过 Puppet DSL 执行此操作。这里有几个选项:

  1. Hiera 3: Lookup Typeshiera_array()文档详细介绍了这一点,但如果它们位于层次结构的多个级别,您可以使用该方法将它们合并在一起。鉴于您的层次结构是如何设置的,一些主机可能会获得较小的列表,而一些主机可能会获得较大的列表。

  2. puppetlabs -stdlib 模块也可以提供帮助。它具有数组的concatunion方法。

于 2015-12-29T23:44:32.243 回答