我在 nodes.pp 中定义了如下哈希:
net::addr { "eth5":
rt => {
rt1 => {
address => '192.168.10.0',
netmask => '255.255.255.0',
gateway => '192.5.28.19',
src => '192.5.28.21'
},
}
我无法访问模板中哈希的标题,因此我想打印出哈希的标题,即“eth5”,我该怎么做?此外,在我的模块文件 (/etc/puppet/modules/net/addr.pp) 中的定义类中有一个名为 $int 的变量,我如何使用同一模块中此模板的 scope.lookupvar 函数访问该变量?
谢谢丹
答案1
定义类型中设置的变量可作为模板内容的局部范围变量。
在模板中简单地使用<%= title %>
或<%= int %>
应该使用为定义类型的特定实例设置的变量。
答案2
在您的示例中,您应该使用 namevar $name
,。
例如,如果您定义如下资源:
objecttype { "namevar": parameter=>"value" }
然后变量将被设置如下:
$name = "namevar"
$parameter = "value"
在从定义调用的模板中,这些可以简单地引用$name
和$parameter
(但要注意保留字!)。