Datei Templates

In diesem Abschnitt kommen wir zu den Templates. Im Grunde sind diese mit den bereits bekannten File Ressourcen vergleichbar, lassen sich jedoch über Variablen anpassen.

Als Beispiel verwenden wir hier eine NTP Konfiguration. Um den verwendeten NTP Server möglichst variabel zu halten, packen wir die IP Adresse in eine Variable. Die Klasse sieht also wie folgt aus.

Zunächst erstellen wir hierzu eine neue Datei innerhalb der gewünschten Klasse. In unserem Fall verwenden wir eine NTP Konfiguration. Das Template wird in den Ordner templates/ gelegt.

Wichtig ist hier die Endung .erb, welche signalisiert, dass es sich bei der Datei um ein Template mit entsprechenden Variablen handelt. Der Inhalt sieht wie folgt aus.

Innerhalb einer Datei stehen alle Variablen zur Verfügung, welche der Klasse übergeben wurden.

<%= @ip_address %> wird durch die IP Adresse ersetzt, die wir dem Puppet Modul im Aufruf übergeben.

 

Arrays

Das NTP Beispiel eignet sich sehr schön zur Demonstration weiterer Features von Puppet zum Thema Templates. In der Regel sollte man zur Redundanz mehrere NTP Server vergeben. Dies lässt sich sehr leicht mittels eines Arrays lösen. Zunächst übergeben wir der Klasse ntp ein Array.

Anschließend muss das Template ebenfalls angepasst werden, sodass es auch Arrays verarbeiten kann.

In dieser Schleife wird nun für jede IP Adresse aus dem Array eine neue Zeile angelegt.

 

Verzweigungen

Neben Arrays sind auch Verzweigungen in Puppet Templates möglich. Hierzu sehen wir uns das folgende Beispiel an.

Ablauf: Wenn die Variable ip_address ungleich dem Wert NONE ist, gebe die nachfolgende Zeile aus.

 

Kombination mehrerer Templates

Bei größeren Dateien oder verschiedenen Komponenten, kann es notwendig sein mehrere Templates zu einer Datei zu vereinen. Dies ist wie folgt möglich.

Die Datei /etc/ntp.conf wird damit aus den zwei Templates ntp_teil1.conf.erb und ntp_teil2.conf.erb zusammengesetzt.

 

Weiter: Hostzuweisung