Obter saída de matriz no fantoche ERB de hiera

1

Eu tenho um array definido no seguinte formato no hiera.

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

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

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

Eu 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_servers está fazendo corretamente as pesquisas hiera.

Como posso corrigir meu ERB?

    
por nitins 16.02.2018 / 10:41

1 resposta

2

Expandindo o comentário de jordanm - você pode usar a função to_json do módulo puppetlabs-stdlib - source .

Em seu manifesto de marionetes:

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'] %>
    
por 19.02.2018 / 13:00