请你帮助我好吗。我在 puppet manifest 中从 hiera 获取 dict,然后尝试过滤它们并将 python 脚本作为 args 传递。但不知道该怎么做。
我的希拉:
myclass::server_conf:
'first_serv':
'serv_name': 'testname'
'serv_hostname': 'testhost'
'test_url': 'test@url.com'
'second_serv':
'serv_name': 'testname2'
'serv_hostname': 'testhost2'
'test_url': 'test@url.com2'
我的木偶清单(我从 hiera 中的值获取哈希):
$server_conf = hiera_hash('myclass::server_conf', {})
结果我有:
{\"first_serv\"=>{\"serv_name\"=>\"testname\", \"serv_hostname\"=>\"testhost\", \"test_url\"=>\"test@url.com\"}, \"second_serv\"=>{\"serv_name\"=>\"serv2\", \"serv_name\"=>\"testname2\", \"serv_hostname\"=>\"testhost2\", \"test_url\"=>\"test@url.com2\"}}
然后我想从这个列表中只选择值:
'testname' 'testhost' 'test@url.com' 'testname2' 'testhost2' 'test@url.com2'
我正在尝试使用地图功能来做到这一点:
$transforrmed_data = map(server_conf) |$key,$value| { $value }
并得到错误:
Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not match |$key,$value| at /manifests/server.pp:26 on node test.node
我怎么解决这个问题?我还需要转移到另一个变量 'testname2' 'testhost2' 'test@url.com2' 并将其传递给 exec 命令资源。
谢谢!