Puppet: Iteration um Defined Resources anzulegen

Was wohl jeder schon einmal mit Puppet getan hat, mehrere Resources oder auch Defined Resources mit einer Iteration über ein Array anzulegen, ist eine relativ leichte Übung:

define foo::bar($arg1, ..., $argN) {
   ...
}
foo::bar { ['one', 'two', 'three']:
   arg1 => value1,
   ...
   argN => valueN,
}

Ein nicht unerheblicher Nachteil ist hier natürlich, dass die Parameter arg1, …, argN für die anzulegenden Defined Resources gleich sind. Möchte man unterschiedliche Parameter verwenden, ist dies unter Zuhilfenahme der Funktion create_resources realisierbar.
Als Parameter erwartet die Funktion den Typ foo::bar und einen Hash of Hashes $hash, der jeweils den Titel der Defined Resource enthält und die jeweilige Parameterzuweisung.

define foo::bar($arg1, ..., $argN) {
   ...
}
$hash = {
   'one' => { arg1 => value1, ..., argN => valueN, },
   'two' => { arg1 => valueN+1, ..., argN => valueN+N, },
   ...
}
create_resources( foo::bar, $hash )
Lennart Betz
Lennart Betz
Senior Consultant

Der diplomierte Mathematiker arbeitet bei NETWAYS im Bereich Consulting und bereichert seine Kunden mit seinem Wissen zu Icinga, Nagios und anderen Open Source Administrationstools. Im Büro erleuchtet Lennart seine Kollegen mit fundierten geschichtlichen Vorträgen die seinesgleichen suchen.