如何访问模板中的 Puppet 哈希名称

如何访问模板中的 Puppet 哈希名称

我在 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(但要注意保留字!)。

相关内容