Obtenga la salida de la matriz en Puppet ERB de hiera

Obtenga la salida de la matriz en Puppet ERB de hiera

Tengo una matriz definida en el siguiente formato en hiera.

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

Estoy intentando completar el archivo de configuración con ERB en el siguiente formato

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

Intenté lo siguiente en ERB, pero la matriz aparece como una sola cadena.

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

Está profiles::xxx::master_serversrealizando correctamente las búsquedas de hiera.

¿Cómo puedo corregir mi ERB?

Respuesta1

Ampliando el comentario de jordanm- puede usar la to_jsonfunción del puppetlabs-stdlibmódulo -fuente.

En tu manifiesto de Puppet:

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

En su ERB:

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

información relacionada