Ich habe ein paar hundert einmalige Server mit unterschiedlichen Konfigurationsdateien, die in einem Verzeichnis vorhanden sein müssen. Kopien der Dateien befinden sich auf dem Puppenmeister.
Innerhalb einer meiner Klassen habe ich einen Standardsatz von Konfigurationen, die immer auf den Knoten übertragen werden, wie folgt:
file { "/etc/someprogram/config/000-default":
ensure => "present",
owner => "root",
group => "root",
mode => 0764,
source => "puppet:///modules/someprogram/000-default",
}
Was ich gerne hätte, ist so etwas:
$filearray = directory listing of /etc/puppet/modules/someprogram/files/$fqdn
with each file as an element into array
$filearray.each(
file { "/etc/someprogram/config/$filename":
ensure => "present",
owner => "root",
group => "root",
mode => 0764,
source => "puppet:///modules/someprogram/files/$fqdn/$filename",
}
)
Ich bin mit Puppen nicht sehr vertraut, aber ich habe den Eindruck, dass es keinen Weg gibt, dies zu tun.
recurse => true
für denfile
Typ), rekursiv zu verwalten , anstatt jede Datei als separate Ressource zu deklarieren?Antworten:
Sie können damit machen, was Sie versuchen:
Dadurch werden alle Dateien in $ fqdn nach / etc / someprogram / config kopiert und überschrieben, falls sie bereits vorhanden sind.
quelle
recurse => remote
ob das betreffende Verzeichnis lokale Dateien enthält, die nicht vom Puppet-Server übertragen werden.Wenn Sie mehrere Dateien in einem Verzeichnis definieren möchten, ohne das gesamte Verzeichnis zu rekursieren, können Sie ein Array wie folgt verwenden:
Bei langen Pfaden zu "/ my / dir" oder vielen Dateien würde es natürlich etwas unhandlich werden. In diesem Fall ist es besser, eine Definition zu erstellen, die den Verzeichnispfad enthält, und einfach das Array von zu übergeben Dateinamen dazu.
quelle
alias
Satz in der Datei haben: /$name
. Das funktioniert nur, wenn es sich um einen definierten Typ handelt.Hier ist ein Beispiel, wie ich das mache:
Im obigen Beispiel weise ich über Puppet jedem Datenträger auf einem bestimmten Server den Deadline-E / A-Scheduler zu.
quelle