Отражение переменных ERB
-
12-10-2019 - |
Вопрос
Я использую марионеточный шаблон, который делает интерпретация файла шаблона ERB. Я хотел бы знать все доступные для меня переменных, однако есть доступные переменные (например, FQDN), которые не указаны ни одним из методов отражения, о которых я знаю, в частности, ни один из них:
<% Module.constants.each do |v| %># module constant: <%= v %>
<% end %>
<% Kernel.local_variables.each do |v| %># local variable: <%= v %>
<% end %>
<% Kernel.instance_variables.each do |v| %># instance variable: <%= v %>
<% end %>
<% Module.class_variables.each do |v| %># class variable: <%= v %>
<% end %>
<% Kernel.global_variables.each do |v| %># global variable: <%= v %>
<% end %>
Есть ли метод дополнительного размышления для ERB, который откроет это мне?
Решение
А "Смотрите все переменные клиента" должен делать то, что вы хотите
Другие советы
На самом деле не знаю о марионеточных шаблонах, но если fqdn
локальная переменная, а затем вызывает local_variables
(как в self.local_variables
) должен отобразить его.
Я не знаю так сильно, как хотел scope.to_hash
Вероятно, вы хотите. Из Ссылка на шаблон:
<% scope.to_hash.keys.each do |k| -%>
<%= k %>
<% end -%>
С другой стороны, если вы просто хотите единовременного взгляда на переменные, которые поставляет узлы агента, вы можете запустить facter
на узле; Вот как Puppet получает всю эту информацию в первую очередь.