我编写了一个模块,并在以下位置定义了一个名为“master”的变量:/etc/puppet/network/manifests/vlan/vlan.pp。在 vlan.pp 中,我调用了一个模板文件: file { "ifcfg-${interface}": content => template('net/vlan.erb'), } 但是我无法访问变量“master”在文件位置:
/etc/puppet/modules/net/templates/vlan.erb
当人偶在客户端上运行时,它不会被打印出来。我的理解是这是一个范围问题,但我不知道范围调用应该是什么,有人可以帮我解决这个问题吗?
我已经在 erb 文件中尝试了以下调用: <%= scope.lookupvar('network::vlan::master') %> <%= scope.lookupvar('network::vlan::vlan::master ') %> <%= 主人 %>
谢谢丹
我会将您的模板更改为类似以下内容:
还要确保在你的 vlan.pp 中你有这样的东西:
该模板将具有在生成模板的范围内可访问的任何变量。确保变量在模板中可访问的一种简单方法是将局部作用域外的任何变量转换为实例变量,如下所示:
然后使用@var 访问模板中的var。