O Hiera está buscando como um array, mas você está passando para o template como uma string com $nginx['phpini'].join("\n")
- mude para passar a variável diretamente sem manipulá-la.
No meu arquivo yaml eu tenho vários valores que precisam ser impressos em um arquivo ini gerenciado por outro módulo php. Eu posso pegar os valores através do heira e enviá-los para o arquivo ini, mas está no formato errado. Cada item no arquivo yaml tem que ser separado por uma linha, como faço para isso?
Aqui está o meu arquivo 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
E este é o meu manifesto porque tentei algumas coisas diferentes sem sucesso:
php::ini { 'php.ini':
value => [
$nginx['phpini']
],
require => Package["php5-cli"]
}
Em que valor eu preciso dar saída de cada valor do phpini para uma linha separada.
Atualização:
Aqui está o arquivo de modelo que está sendo usado:
; File Managed by Puppet
<% if @value != "" -%>
<% if @value.is_a? Array -%>
<% @value.each do |name| -%>
<%= name %>
<% end %>
<% else -%>
<%= value %>
<% end -%>
<% end -%>
Assim, o modelo suporta matrizes (acho que Ruby não é o meu ponto strong), mas Heira está concatenando o array do yaml. Chamar os dados usando heira_array
não faz diferença.