Hiera から Puppet ERB の配列出力を取得する

Hiera から Puppet 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'] %>

profiles::xxx::master_servershiera 検索が正しく実行されています。

ERB を修正するにはどうすればいいですか?

答え1

コメントを拡張する- モジュールから関数jordanmを使用できます-to_jsonpuppetlabs-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'] %>

関連情報