Aufruf Marionette definierte Ressource mit mehreren Parametern mehrere Male
Habe ich eine einfache Marionette definierte Ressource, die wie folgt aussieht:
define mything($number, $device, $otherthing) {
file{"/place/${number}":
ensure => directory
}
mount { "/place/${number}":
device => $device,
ensure => mounted,
require => File["/place/${number}"]
}
file {"/place/${number}/${otherthing}":
ensure => directory,
require => Mount['/place/${number}']
}
}
Muss ich anrufen diese Ressource eine Anzahl von Zeiten mit verschiedenen Parametern, kann aber nicht herausfinden, wie dies zu tun, ohne explizit aufrufen mything()
wiederholt.
Idealerweise würde ich alle Parameter für die gespeicherte in eine Art von array, und dann rufen Sie mything($array)
, ein bisschen wie diese:
$array = [
{number => 3, something => 'yes', otherthing => 'whatever'},
{number => 17, something => 'ooo', otherthing => 'text'},
{number => 4, something => 'no', otherthing => 'random'},
]
mything($array)
Aber das scheint nicht zu funktionieren. Ich bin mir ziemlich sicher, dass dies funktionieren würde, wenn meine Ressource brauchte nur einen einzigen parameter, und ich hatte nur ein flaches array von Werte, aber kann ich das gleiche tun mit mehrere benannte Parameter?
- Ich habe gezeichnet, es ein bisschen - ich hatte gehofft, die details waren nicht wichtig und, dass es eine sinnvolle generische Art und Weise, dies zu tun.
- Ja. Check meine Antwort...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies kann für Ihren Fall. Stattdessen definieren Sie das array in eine variable, diese Parameter beim Aufruf der
define
geben.Habe ich noch nicht getestet das ganze, was ich getestet habe ist dieser
define
statt-und es funktioniert:Ergebnisse :