puppet - 使用查找命令在 puppet 中的多个 hiera 文件中查找相同的键
问题描述
我正在尝试读取多个 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
没有办法做到这一点?
提前致谢。
解决方案
如果您查看用于指定合并行为(ref)的文档,您会看到您需要指定可选的第三个参数 to lookup
,并且您会收到该错误,因为“唯一”被解释为数据类型。
尝试:
lookup(dictionaries, Hash, 'unique')
或者
lookup(dictionaries, Hash, {'strategy' => 'unique'})
根据您发现更具可读性的内容。
推荐阅读
- import - SAS:有趣的 Excel 导入差异
- ios - 限制对 Firebase 存储的访问,因此只有我的应用可以访问它
- javascript - 如何在 Google Script App 中模拟击键?
- arrays - 如何在 ruby 中创建一个随机排列的具有三个 0 和两个 1 的数组?
- asp.net - 在 OpenFileDialog 中的 asp.net
- android - 即使活动在android中被破坏,也需要运行服务
- reactjs - Apache 服务器上的反应应用程序
- google-ads-api - Google Ads - 负转化价值
- rest - 如何在 WSO2 APIM 2.1 中获取 API 的所有订阅/用户
- testing - Grails 从 gradle/命令行将 .gsp 编译为 .html