
Ich habe ein Array im folgenden Format in Hiera definiert.
master_servers:
- "stage-01.com"
- "stage-02.com"
Ich versuche, die Konfigurationsdatei mit ERB im folgenden Format zu füllen
discovery.zen.ping.unicast.hosts: ["stage-01.com", "stage-02.com" ]
Ich habe Folgendes in ERB versucht, aber das Array wird als einzelne Zeichenfolge angezeigt.
discovery.zen.ping.unicast.hosts: <%= scope['::profiles::xxx::master_servers'] %>
Die profiles::xxx::master_servers
Hiera-Suchvorgänge werden korrekt durchgeführt.
Wie kann ich mein ERB korrigieren?
Antwort1
Erweitern des Kommentars von jordanm
- Sie können die to_json
Funktion aus dempuppetlabs-stdlib
-Quelle.
In Ihrem Puppet-Manifest:
class profiles::xxx(
$master_servers,
) {
$master_servers_json = to_json($master_servers)
...
}
In Ihrem ERB:
discovery.zen.ping.unicast.hosts: <%= scope['::profiles::xxx::master_servers_json'] %>