在 Puppet 的定义类型中使用哈希

在 Puppet 的定义类型中使用哈希

我第一次尝试在 Puppet 中使用哈希,因此在我的 nodes.pp 中我将使用它:

node test1.example.com {
    netset::int::vconf {"servers" :
        label1 => { 'comment' => 'VIP Test1', 'ipaddress' => '192.168.1.10', 'netmask' => '255.255.255.0', 'int_label' => 'TEST1' },
        label2 => { 'comment' => 'VIP Test2', 'ipaddress' => '192.168.1.11', 'netmask' => '255.255.255.0', 'int_label' => 'TEST2' },
    }
}

在我正在编写的文件 /etc/puppet/modules/netset/int/vconf.pp 中,我正在创建一个定义的类型:

定义 netset::int::vconf ($comment,$ipaddress){...做一些事情...}

我的问题是如何将哈希表的每个键传递给定义的类型?不知怎的,我想象着我必须在某处创建一个循环,任何帮助都会有很大的帮助。

谢谢丹

答案1

我认为,你的定义是错误的。

如果你有:

   define netset::int::vconf( $comment='', $ipaddress='' ) {
      .....
   }

然后你应该定义多个实例

   netset::int::vconf {
       label1: comment=>"comment1", ipaddress=>"192.168.1.1";
       label2: comment=>"comment2", ipaddress=>"192.168.2.2";
   }

其中label1label2是 namevar。请注意定义之间的尾随分号。

相关内容