Вопрос

Я использую марионеточный шаблон, который делает интерпретация файла шаблона 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 получает всю эту информацию в первую очередь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top