reflejo de las variables erb
-
12-10-2019 - |
Pregunta
Estoy usando una plantilla de marionetas, que hace una interpretación erb del archivo de plantilla. Me gustaría saber todas las variables disponibles para mí, sin embargo, no son variables disponibles (por ejemplo, FQDN) que no están listados por cualquiera de los métodos de reflexión yo sepa, en concreto, ninguno de estos:
<% 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 %>
¿Hay un método de reflexión adicional para erb que revelará estos para mí?
Solución
El "Ver todas las variables del cliente" debe hacer lo desea
Otros consejos
No se sabe realmente acerca de las plantillas de marionetas, pero si fqdn
es una variable local, a continuación, llamar local_variables
(como en self.local_variables
) debe mostrarlo.
No sé tanto como me gustaría incorporado en medio de la reflexión, pero con la marioneta, creo que el hash devuelto por scope.to_hash
es probablemente lo que quieran de Erb. De la referencia de plantillas:
<% scope.to_hash.keys.each do |k| -%>
<%= k %>
<% end -%>
Como alternativa, si lo que desea es una visión en tiempo de uno en las variables de los suministros agente de nodo, puede ejecutar facter
en el nodo; así es como se pone la marioneta toda esa información en el primer lugar.