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 -%>

Я надеюсь, что помог.

Другие вопросы по тегам