Obtenha a saída do array no fantoche ERB do hiera

Obtenha a saída do array no fantoche ERB do hiera

Eu tenho um array definido no seguinte formato em hiera.

 master_servers:
  - "stage-01.com"
  - "stage-02.com"

Estou tentando preencher o arquivo de configuração com ERB no seguinte formato

Discovery.zen.ping.unicast.hosts: ["stage-01.com", "stage-02.com"]

Tentei o seguinte no ERB, mas o array aparece como uma única string.

discovery.zen.ping.unicast.hosts: <%= scope['::profiles::xxx::master_servers'] %>

O profiles::xxx::master_serversestá fazendo corretamente as pesquisas hiera.

Como posso corrigir meu ERB?

Responder1

Expandindo o comentário de jordanm- você pode usar a to_jsonfunção do puppetlabs-stdlibmódulo -fonte.

No seu manifesto do Puppet:

class profiles::xxx(
  $master_servers,
) {
  $master_servers_json = to_json($master_servers)
  ...
}

No seu ERB:

discovery.zen.ping.unicast.hosts: <%= scope['::profiles::xxx::master_servers_json'] %>

informação relacionada