riflessione di variabili erb
-
12-10-2019 - |
Domanda
Sto utilizzando un modello di marionette, che fa un'interpretazione erb del file modello. Mi piacerebbe conoscere tutte le variabili disponibili a me, tuttavia, ci sono le variabili disponibili (ad esempio, nome di dominio completo) che non sono elencati da uno qualsiasi dei metodi di riflessione io sappia, in particolare, nessuno di questi:
<% 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 %>
C'è un metodo di riflessione in più per erb che rivelerà questi per me?
Soluzione
Il "Vedi tutte le variabili client" dovrebbe fare quello che vuoi
Altri suggerimenti
non so davvero sui modelli di burattini, ma se fqdn
è una variabile locale, quindi chiamare local_variables
(come in self.local_variables
) dovrebbe visualizzarlo.
Non so per quanto mi piacerebbe in merito a Erb incorporato nei mezzi di riflessione, ma con marionette, penso che l'hash restituito da scope.to_hash
è probabilmente quello che volete. Da il riferimento template :
<% scope.to_hash.keys.each do |k| -%>
<%= k %>
<% end -%>
In alternativa, se si desidera solo un aspetto di una volta alle variabili delle forniture nodo agente, è possibile eseguire facter
sul nodo; è così che Puppet ottiene tutto ciò che informazioni in primo luogo.