在我的 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")
- 切换到直接传递变量而不对其进行操作。