使用 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: Deep
和 Error: Evaluation Error: Resource type not found: Unique
有什么办法可以实现吗?
提前致谢。
如果您查看指定合并行为的文档 (ref),您会发现您需要指定 lookup
的可选第三个参数,并且您收到该错误是因为 "unique" 被解释为数据类型。
试试看:
lookup(dictionaries, Hash, 'unique')
或
lookup(dictionaries, Hash, {'strategy' => 'unique'})
根据您认为更易读的那个。
我正在尝试读取存在于多个 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: Deep
和 Error: Evaluation Error: Resource type not found: Unique
有什么办法可以实现吗?
提前致谢。
如果您查看指定合并行为的文档 (ref),您会发现您需要指定 lookup
的可选第三个参数,并且您收到该错误是因为 "unique" 被解释为数据类型。
试试看:
lookup(dictionaries, Hash, 'unique')
或
lookup(dictionaries, Hash, {'strategy' => 'unique'})
根据您认为更易读的那个。