Шаблон Chef: использование вложенного объекта для создания файла конфигурации

Я хотел бы создать файл конфигурации из Chef шаблон. Каков правильный синтаксис для достижения этого в Chef 13+

У меня есть база данных со следующими подразделами:

"mykey1" : {
  "param1" : "mysubvalue1",
  "param2" : "mysubvalue2"
},
"mykey2" : {
  "param1" : "mysubvalue11",
  "param2" : "mysubvalue22"
},

Затем в своем рецепте я использую ресурс шаблона:

template 'mytemplate.erb'
  ...
  variables ({
     :keys => [mykey1, mykey2]
  })
end

Тогда в шаблоне:

<% @keys.each_pair do |name, _object| %>
  ["#{name}"]
  param1 = "#{_object.param1}"  # will this work??
<% end %>

Как правильно ссылаться на param1 а также param2

2 ответа

К тому времени, когда вы получаете такие данные, это обычный хэш-объект Ruby. Так что вы бы использовать _object["param1"],

Приедете сюда спустя годы? Попробуй это:

      <% @keys.each_pair do |name, _object| %>
["#{name}"]
<%   _object.each do |param, sub| -%>
  <%= param %> = "<%= sub %>"
<%   end # _object.each -%>
<% end   # keys.each -%>

дайте мне знать, как идут дела.

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