Не могли бы вы мне помочь. Я получаю dict от hiera в манифесте марионеток, а затем пытаюсь отфильтровать их и передать скрипт python в качестве аргументов. Но не знаю, как это сделать.
Моя иера:
myclass::server_conf:
'first_serv':
'serv_name': 'testname'
'serv_hostname': 'testhost'
'test_url': '[email protected]'
'second_serv':
'serv_name': 'testname2'
'serv_hostname': 'testhost2'
'test_url': '[email protected]'
Мой манифест кукол (я получаю хеш от значений в hiera):
$server_conf = hiera_hash('myclass::server_conf', {})
В результате этого у меня было:
{\"first_serv\"=>{\"serv_name\"=>\"testname\", \"serv_hostname\"=>\"testhost\", \"test_url\"=>\"[email protected]\"}, \"second_serv\"=>{\"serv_name\"=>\"serv2\", \"serv_name\"=>\"testname2\", \"serv_hostname\"=>\"testhost2\", \"test_url\"=>\"[email protected]\"}}
Затем я хочу выбрать из этого списка только значения:
'testname' 'testhost' '[email protected]' 'testname2' 'testhost2' '[email protected]'
Я пытаюсь сделать это с помощью функции карты:
$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' '[email protected]' и передать ее ресурсу команды exec.
Спасибо!