我在 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_servers
正确进行层次查找。
我该如何纠正我的 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'] %>