【发布时间】:2016-11-20 09:38:58
【问题描述】:
我在 yaml hiera 文件中有这个。
reg_connection:
toronto:
- host: apple.net
- port: 701
- user: george
- ssl: true
- allowed: banana,orange
texas:
- host: pink.net
- port: 702
- user: joel
- ssl: false
- allowed: blue,gree,red
我想访问 host、port、user、ssl 的值,并允许 toronto 和 texas。
我的清单中有这个:
$reg_connection= hiera_hash('reg_connection')
我的模板中有这个:
<% reg_connection.keys().sort.each do |location| -%>
<%= location %>host=<%= location[host] %>
<%= location %>port=<%= location[port] %>
<%= location %>username=<%= location[user] %>
<%= location %>ssl.enable=<%= location[ssl] %>
<%= location %>allowed.list=<%= location[allowed] %>
<% end -%>
我希望它在我的模板中输出两个配置块:一个用于多伦多,一个用于德州。
我的 puppet 输出显示它没有主机值。我如何访问该值?
【问题讨论】:
-
请注意
hiera_hash()的目的是执行hash-merge 查找。数据和结果必然是散列,但仅仅因为您的值预计是散列并不意味着您需要或想要hiera_hash()。普通的hiera()函数将改为执行标准优先级查找,如果这实际上是它发现的值的类型,它将返回一个哈希。
标签: ruby hash puppet erb hiera