从 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_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'] %>

相关内容