问题描述
这是我在人偶代码中具有类似于以下内容的数据集的python示例:
dict = {'account1': {'uid': ['123456'],'user': ['appuser1'],'appname': ['myapp1']},'account2': {'uid':['567878'],'user':['appuser'2],'appname':['myapp2']}}
for i in dict.keys():
print dict[i]['user'],dict[i]['uid']
我如何在puppet / ruby.TIA中实现相同的解决方案。
解决方法
在Puppet清单中,您可以使用each
function遍历哈希:
$ cat foo.pp
$dict = {
'account1' => {
'uid' => ['123456'],'user' => ['appuser1'],'appname' => ['myapp1']
},'account2' => {
'uid' => ['567878'],'user' => ['appuser2'],'appname' => ['myapp2']
}
}
$dict.each | $account_key,$account | {
notice("${account['user'][0]},${account['uid'][0]}")
}
$ puppet apply foo.pp
Notice: Scope(Class[main]): appuser1,123456
Notice: Scope(Class[main]): appuser2,567878
Notice: Compiled catalog for it070137 in environment production in 0.04 seconds
Notice: Applied catalog in 0.03 seconds
如果愿意,可以使用类型来检查哈希中的键和值是否符合您的期望:
$dict.each | String $account_key,Hash $account | {
notice("${account['user'][0]},${account['uid'][0]}")
}