Puppet, hiera и erb - erb не распознают массив
У меня довольно досадная ошибка, которую я отчаянно пытаюсь исправить. У меня есть кукольный модуль, в котором определенные вещи хранятся в файле yaml (hiera), чтобы люди могли быстро редактировать только эту часть.
Структура вложенная.
Шаблон как этот:
<%= @platforms[@platform]['users_allowed'][@host].class %>
оказывает на это:
Array
Но когда я пытаюсь повторить это:
<% @platforms[@platform]['users_allowed'][@host].each do | pubkey | %>
<%= pubkey %>
<% end %>
кукольный говорит:
Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Failed to parse template somemodule/templates/authorized_keys.erb:
Filepath: /etc/puppet/modules/somemodule/templates/authorized_keys.erb
Line: 1
Detail: undefined method `each' for nil:NilClass
Как это внезапно становится нулем и как я повторяюсь здесь?
Боюсь, я застрял здесь и даже не уверен, в каком направлении мне следует искать решение.
Модуль перезаписи без иера или без вложенной структуры не вариант в этом одном случае.
1 ответ
Я проверил на своей марионетке, и правильный синтаксис, который работал:
<% @platforms[@platform]['users_allowed'][@host].each do | pubkey | -%>
<%= pubkey %>
<% end -%>
Я надеюсь, что помог.