Um Daten von den Puppet Modulen zu trennen wurde das Backend Hiera eingeführt. In der einfachsten Form werden Daten aus einer YAML-Datei geholt. Diese befüllen die Parameter der Puppet Klassen und können zudem abhängig von Eigenschaften der Hosts (genauer Fakten `facter -p`) gemacht werden (z.B. Hostname, Betriebssystem, Hersteller des Raidcontrollers usw.). Somit kann man nicht nur in den Puppet Klassen selbst sondern auch im Backend auf verschiedenen Eigenschaften der Server reagieren.
Hiera installiert man am besten über den Paketmanager. Ab der Version 3.x kommt Hiera als Abhängigkeit von Puppet mit. Die Konfigurationsdatei hiera.yaml ist relativ einfach und schnell erklärt und liegt für gewöhnlich in /etc/puppet/.
$ cat /etc/puppet/hiera.yaml
---
:backends:
- yaml
:hierarchy:
- "fqdn/%{::fqdn}"
- "%{operatingsystem}"
- base
:yaml:
:datadir: '/hieradata/%{::environment}'
:logger: console
Als Backend werden YAML-Dateien verwendet, diese liegen im Verzeichnis /hieradata/%{::environment}. Der Key hierachy gibt an welche YAML-Dateien im speziellen angezogen werden. Die Einträge von hierachy werden von oben nach unten abgearbeitet und können Variablen enthalten welche von den Hosts geliefert werden (`facter -p`). Ein kurzes Beispiel:
Auf dem Debian Server server1.netways.de wird `puppet agent -t –environment testing` ausgeführt. Hiera sucht somit die Daten in folgenden Dateien in der angegeben Reihenfolge:
– /hieradata/testing/fqdn/server1.netways.de.yaml
– /hieradata/testing/Debian.yaml
– /hieradata/testing/base.yaml
Sollte eine der YAML-Dateien nicht existieren wird diese einfach übersprungen. Wann und wie Puppet Aufrufe an Hiera sendet wird im nächsten Blogpost von mir erklärt.
Mit Hiera kann man sehr einfach und schnell seine Daten aus den Puppet Module fern halten und flexibel auf seine eigene Infrastruktur reagieren. Durch verschiedenen Backends können auch andere Datenquellen wie z.B. eine CMDB angezogen werden. Mehr Ideen was man alles mit Hiera machen kann gibt es natürlich auch in unseren Puppet Architect Schulungen.
0 Kommentare
Trackbacks/Pingbacks