使用 lookup 命令在 puppet 的多个 hiera 文件中查找相同的键

Lookup same keys in multiple hiera files in puppet using lookup command

我正在尝试读取存在于多个 hiera 文件中的键并合并这些值。 我的 hiera 文件包含:

hierarchy:
  - name: "Per-env secrets"
    paths:
      - "puppet/hiera/dict-1.yaml"
      - "puppet/hiera/dict-2.yaml"

我的人偶脚本包含:

lookup(dictionaries,Hash).each |String $keyDico, Hash $valueDico| {
  notify{"The value of dictionary is: ${keyDico}": }

关键字 'dictionaries' 存在于 dict-1.yaml 和 dict-2.yaml 中。但是,它总是从第一个匹配的 hiera 文件中读取并打印密钥。
我尝试将查找函数的参数中的 'Hash' 更改为 'Unique' 或 'Deep'。但它没有用。

获取错误: Error: Evaluation Error: Resource type not found: DeepError: Evaluation Error: Resource type not found: Unique
有什么办法可以实现吗?

提前致谢。

如果您查看指定合并行为的文档 (ref),您会发现您需要指定 lookup 的可选第三个参数,并且您收到该错误是因为 "unique" 被解释为数据类型。

试试看:

lookup(dictionaries, Hash, 'unique')

lookup(dictionaries, Hash, {'strategy' => 'unique'})

根据您认为更易读的那个。