将 hiera 配置打印到由 puppet 管理的配置文件中的多行中

将 hiera 配置打印到由 puppet 管理的配置文件中的多行中

在我的 yaml 文件中,我有多个值需要打印到由另一个 php 模块管理的 ini 文件中。我可以通过 heira 获取这些值并将它们输出到 ini 文件中,但格式不对。yaml 文件中的每个项目都必须用一行分隔,我该如何实现这一点?

这是我的 yaml 文件:

---
nginx:
  phpini:
    - display_errors = On
    - error_reporting = -1
    - date.timezone = "Europe/London"
    - sendmail_path = "/usr/bin/env /usr/local/bin/catchmail"
    - xdebug.default_enable = 1
    - xdebug.remote_autostart = 0
    - xdebug.remote_connect_back = 1
    - xdebug.remote_enable = 1
    - xdebug.remote_handler = "dbgp"
    - xdebug.remote_port = 9000

这就是为什么我尝试了几种不同的方法却没有成功的原因:

php::ini { 'php.ini':
  value => [
    $nginx['phpini']
  ],
  require => Package["php5-cli"]
}

我需要将 phpini 中的每个值输出到单独的行。

更新:

这是正在使用的模板文件:

; File Managed by Puppet

<% if @value != "" -%>
<% if @value.is_a? Array -%>
<% @value.each do |name| -%>
<%= name %>
<% end %>
<% else -%>
<%= value %>
<% end -%>
<% end -%>

因此模板支持数组(我认为 ruby​​ 不是我的强项),但 Heira 正在从 yaml 连接数组。使用调用数据heira_array没有任何区别。

答案1

Hiera 以数组的形式获取,但您将其作为字符串传递给模板$nginx['phpini'].join("\n")- 切换到直接传递变量而不对其进行操作。

相关内容