
我在 hiera.xml 中以以下格式定義了一個陣列:
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_servers
正確執行 hiera 查找。
我該如何修正我的 ERB?
答案1
擴充註釋jordanm
- 您可以使用模組to_json
中的功能puppetlabs-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'] %>