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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top