Получить вывод массива в марионеточном ERB от 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'] %>

Профили :: xxx :: master_servers правильно выполняют поиск по иерархии.

Как я могу исправить свой ERB?

1
задан 16 February 2018 в 13:01
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'] %>
2
ответ дан 3 December 2019 в 20:16

Теги

Похожие вопросы