
У меня есть массив, определенный в следующем формате в hiera.
master_servers:
- "stage-01.com"
- "stage-02.com"
Я пытаюсь заполнить файл конфигурации с помощью ERB в следующем формате
discovery.zen.ping.unicast.hosts: ["stage-01.com", "stage-02.com" ]
Я попробовал следующее в ERB, но массив выглядит как одна строка.
discovery.zen.ping.unicast.hosts: <%= scope['::profiles::xxx::master_servers'] %>
Он profiles::xxx::master_servers
правильно выполняет поиск hiera.
Как я могу исправить свой ERB?
решение1
Расширяя комментарий из jordanm
- можно использовать to_json
функцию из puppetlabs-stdlib
модуля -источник.
В вашем манифесте Puppet:
class profiles::xxx(
$master_servers,
) {
$master_servers_json = to_json($master_servers)
...
}
В вашем ERB:
discovery.zen.ping.unicast.hosts: <%= scope['::profiles::xxx::master_servers_json'] %>