I'm trying to use a hash for the first time in puppet, so in my nodes.pp I'm going to use this:

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

In the file /etc/puppet/modules/netset/int/vconf.pp that I am writing I'm creating a defined type:

define netset::int::vconf ($comment,$ipaddress){...do somethings...}

My questionis how do I pass each keys of the hashes to the defined type? Somehow I'm imagining I'm going to have to create a loop somewhere, any help would be of great assistance.

Thanks Dan

1 Answer 1


You are defining it in the wrong way, I believe.

If you have:

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

then, you should define multiple instances with

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

Where label1 and label2 are the namevar. Note the trailing semicolon between defines.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.