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

使用Lookup命令在puppet中的多个hiera文件中查找相同的键,puppet,Puppet,我试图读取多个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

我试图读取多个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}": }
我的木偶剧本包括:

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}": }
dict-1.yaml和dict-2.yaml中都有关键的“词典”。但是,它总是从第一个匹配的hiera文件读取并打印密钥。
我尝试将查找函数参数中的“Hash”更改为“Unique”或“Deep”。但它不起作用。

获取错误:
错误:评估错误:未找到资源类型:Deep
错误:评估错误:未找到资源类型:Unique

有没有办法做到这一点


提前感谢。

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

尝试以下任一方法:

lookup(dictionaries, Hash, 'unique')

根据你觉得更可读的