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