В моем файле yaml у меня есть несколько значений, которые необходимо распечатать в ini-файле, управляемом другим модулем php. Я могу получить значения через 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 -%>
Таким образом, шаблон поддерживает массивы (я думаю, что рубин не моя сильная сторона), но Хейра объединяет массив из yaml. Вызов данных с помощью heira_array
без разницы.
Hiera получает массив, но вы передаете его в шаблон в виде строки с $nginx['phpini'].join("\n")
- переключиться на передачу переменной напрямую, не манипулируя ею.