我正在使用带有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_config
是some_config
的全部内容加上一个附加值。
答案 0 :(得分:1)
我不认为你可以在Hiera中做到这一点,因为它只能插入基于字符串的信息(数字转换为字符串)而不是数组或哈希。
来自Hiera 3: Interpolation Tokens, Variables, and Lookup Functions:
Hiera可以插入任何Puppet数据类型的值,但该值将转换为字符串。
你仍然可以通过Puppet DSL做到这一点。以下是一些选项:
Hiera 3: Lookup Types文档详细介绍了这一点,但如果这些文档位于层次结构的多个级别,则可以使用hiera_array()
方法将它们合并在一起。鉴于您的层次结构是如何设置的,一些主机可以获得较小的列表,而一些主机可以获得更大的列表。
puppetlabs-stdlib module也可以提供帮助。它有数组的concat和union方法。