1

我正在使用 puppet 模板,它对模板文件进行 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 反射方法可以向我揭示这些?

4

3 回答 3

1

查看所有客户端变量”应该做你想做的事

于 2011-01-24T23:26:33.710 回答
0

不太了解 puppet 模板,但如果fqdn是局部变量,则调用local_variables(如self.local_variables)应该显示它。

于 2011-01-18T22:28:07.133 回答
0

我不太了解 erb 的内置反射方式,但是对于 Puppet,我认为返回的哈希scope.to_hash可能是您想要的。从模板参考

<% scope.to_hash.keys.each do |k| -%>
<%= k %>
<% end -%>

或者,如果您只想一次性查看代理节点提供的变量,您可以facter在节点上运行;这就是 Puppet 首先获取所有这些信息的方式。

于 2011-02-08T18:57:23.000 回答