我可以将 hiera 与 YAML 后端一起使用来组合数组吗?



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

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

---
some_config:
  - one
  - two
  - three
some_more_config:
  - one
  - two
  - three
  - four

其中some_more_config始终是some_config的超集。

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

---
some_config:
  - one
  - two
  - three
some_more_config:
  - "%{::some_config}"
  - four

在文字而不是代码中,some_more_configsome_config的全部内容加上一个附加值。

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

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

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

不过,您仍然可以通过Puppet DSL执行此操作。以下是一些选项:

  1. Hiera 3:查找类型文档详细介绍了这一点,但如果它们位于层次结构的多个级别中,则可以使用 hiera_array() 方法将它们合并在一起。考虑到层次结构的设置方式,某些主机可以获取较小的列表,而某些主机可以获取较大的列表。

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

相关内容

  • 没有找到相关文章

最新更新