Wie kann ich ein Verzeichnis und seinen Inhalt mit puppet rekursiv spiegeln?


14

Nehmen wir an, ich habe ein Modul mit files/etc/foo/{conf0, conf1, conf2, conf3, etc}. Es ist einfach genug, jede dieser Dateien zu platzieren, wenn die Anzahl klein ist:

file { 'conf0':
    path => '/etc/foo/conf0',
    ensure => true,
    source => 'puppet:///.../etc/foo/conf0',
}

und wiederholen. Es ist jedoch mit einigem Aufwand an Duplikaten verbunden, und es ist mühsam zu warten, ob mehrere Konfigurationsdateien vorhanden sind. Ich möchte sicherstellen, dass files/etc/foo/das auf einen bestimmten Pfad gespiegelt wird. Das heißt,

file { 'etc foo confs':
   path => '/etc/foo',
   ensure => recursive,
   source => 'puppet:///.../etc/foo',
}

schaffen würde /etc/foo/conf0, /etc/foo/conf1und so weiter. Ist das möglich?

Antworten:


22

Sicher - der filesTyp hat eine recurseOption (und recurselimitwenn Sie einschränken möchten, wie tief er in das Verzeichnis reicht).

file { 'etc foo confs':
   path => '/etc/foo',
   source => 'puppet:///.../etc/foo',
   recurse => true,
}

5
Das andere, was Sie dabei beachten sollten, ist die Anzahl der Dateien, für die Puppet Verbindungen aufrechterhalten muss. Es würde nicht lange dauern, bis die Dateideskriptoren aufgebraucht waren und die Puppe in Schwierigkeiten geriet. Ich bin auf dieses Problem gestoßen, bevor ich versucht habe, genau diese Aufgabe zu erledigen.
Jeremy Bouse

@ JeremyBouse Vielen Dank; Das sind sehr nützliche Informationen.
Forellenwein
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.