Назад | Перейти на главную страницу

Использование хэша определенного типа для марионетки

Я впервые пытаюсь использовать хэш в марионетке, поэтому в моем node.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, который я пишу, я создаю определенный тип:

define netset :: int :: vconf ($ comment, $ ipaddress) {... сделать что-нибудь ...}

Мой вопрос: как передать каждый ключ хэшей определенному типу? Как-то я воображаю, что мне придется где-то создать петлю, любая помощь будет большим подспорьем.

Спасибо Дэн

Я считаю, что вы неправильно это определяете.

Если у вас есть:

   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";
   }

куда label1 и label2 являются namevar. Обратите внимание на конечную точку с запятой между определениями.