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

标签 arrays yaml hiera

我正在使用带有 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: Interpolation Tokens, Variables, and Lookup Functions :

Hiera can interpolate values of any of Puppet’s data types, but the value will be converted to a string.



不过,您仍然可以通过 Puppet DSL 执行此操作。这里有几个选项:
  • Hiera 3: Lookup Types文档详细介绍了这一点,但如果这些位于层次结构的多个级别,您可以使用 hiera_array() 将它们合并在一起。方法。考虑到您的层次结构是如何设置的,某些主机可以获得较小的列表,而某些主机可以获得较大的列表。
  • puppetlabs-stdlib module也可以帮忙。它有 concatunion数组的方法。
  • 关于arrays - 我可以将 hiera 与 YAML 后端一起使用来组合数组吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30823309/

    相关文章:

    python - 用 pyopenCL 填充二维数组

    YAML 多行数组

    python - 使用 PyYaml 解析可能无效的 YAML

    puppet - 在 puppet 中设置环境

    jQuery:使用表的所有唯一值创建数组

    javascript - 如何用空值预填充数组?

    amazon-web-services - 我应该在我的存储库中包含我的 .aws-sam 文件吗?

    vagrant - 如何使用 Vagrant、Puppet 和 Hiera 配置时区?

    arrays - Matlab 将向量转换为二进制矩阵

    java - Spring 启动 : how to use multiple yml files