我正在尝试读取多个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}": }
dict-1.yaml和dict-2.yaml中都包含关键的“字典”。但是,它总是从第一个匹配的hiera文件中读取并打印密钥。
我尝试将查找函数的参数“哈希”更改为“唯一”或“深度”。但这没有用。
得到错误:
Error: Evaluation Error: Resource type not found: Deep
和Error: Evaluation Error: Resource type not found: Unique
有什么办法可以做到这一点?
谢谢。
答案 0 :(得分:3)
如果您查看用于指定合并行为(ref)的文档,则会发现您需要为lookup
指定可选的第三个参数,并且由于“唯一”而收到该错误。被解释为数据类型。
尝试之一:
lookup(dictionaries, Hash, 'unique')
或
lookup(dictionaries, Hash, {'strategy' => 'unique'})
根据您发现的可读性更高。