Bei Puppet-Schulungen werde ich recht häufig gefragt, ob es auch möglich ist, Verzeichnisse rekursiv zu erzeugen und zu verwalten?
Ja, die Existenz und damit natürlich auch das Anlegen kann man sicherstellen. Hierzu kürz ein Beispiel:
Ich möchte für mein Web-Hosting Geschäft, jedem Kunden für seinen virtuellen Host die gleiche Verzeichnisstruktur anlegen.
kunde/
├── ftdocs
| ├── Welcome.txt
│ ├── incoming
│ └── pub
├── htdocs
├── logs
└── stats
Zuerst legt man sich diese Verzeichnisstruktur unter ./files in seinem Modul webhosting an. Der Puppet-Code kann dann wie folgt aussehen:
file { "/var/www/${kunde}":
ensure => directory,
owner => $kunde,
group => $kunde,
mode => '0644',
recurse => true,
source => 'puppet:///modules/webhosting/kunde/';
}
Puppet legt nun bzw. kontrolliert die Existenz dieser Struktur, inklusive der Datei Welcome.txt. Da Puppet für Verzeichnisse die Berechtigungen automatisch anpasst, also z.B. aus 0644 ein 0755 macht, ist damit in unserem Bespiel auch ein Wechseln in die Verzeichnisse möglich.
Einschränkend ist hier natürlich, das alle Unterverzeichnisse und auch die Dateien, den selben Owner, die selbe Gruppe und Berechtigungen haben.
0 Comments