2.7 KiB
Executable File
Hiera Konfiguration: Kurzbeschreibung
Diese Datei erklärt die grundlegenden Einstellungen in der hiera.yaml, die für dieses Projekt konfiguriert wurde.
Die Datei hiera.yaml
version: 5
defaults:
datadir: data
data_hash: yaml_data
hierarchy:
- name: "Per-Node-Konfiguration (pro Server)"
path: "nodes/%{trusted.certname}.yaml"
- name: "Allgemeine Konfiguration (für alle)"
path: "common.yaml"
version: 5
Dies ist die Standardversion für moderne Puppet-Installationen und muss an erster Stelle stehen.
defaults
Hier werden Standardwerte für die gesamte Hierarchie festgelegt.
datadir: data: Teilt Hiera mit, dass alle Datenpfade relativ zum Unterverzeichnisdatasind. Das Haupt-Datenverzeichnis ist alsocode/environments/production/data/.data_hash: yaml_data: Gibt an, dass die Datenquelle eine YAML-Datei ist.
hierarchy
Dies ist das Herzstück von Hiera. Es ist eine geordnete Liste, die definiert, in welcher Reihenfolge Puppet nach Daten sucht. Die Suche stoppt beim ersten gefundenen Wert, es sei denn, ein "merge behavior" (Zusammenführungsverhalten) ist definiert.
-
path: "nodes/%{trusted.certname}.yaml"- Bedeutung: Dies ist die höchste Priorität. Hiera sucht zuerst nach einer Datei im
data/nodes/-Verzeichnis, deren Name dem Zertifikatsnamen des anfragenden Servers entspricht (z.B.arch-2.lxd.yaml). - Zweck: Hier werden Konfigurationen hinterlegt, die nur für einen einzigen, spezifischen Server gelten.
%{trusted.certname}ist eine Puppet-Variable, die den verifizierten Namen des Agenten enthält.
- Bedeutung: Dies ist die höchste Priorität. Hiera sucht zuerst nach einer Datei im
-
path: "common.yaml"- Bedeutung: Dies ist die niedrigste Priorität. Wenn in den spezifischeren Ebenen (wie der pro-Node-Datei) kein Wert gefunden wurde, sucht Hiera hier.
- Zweck: Dies ist der Ort für die Standardkonfiguration, die für alle Server gelten soll.
Die Datei site.pp
Die site.pp wurde auf eine einzige Zeile reduziert:
lookup('classes', {merge => 'unique'}).include
lookup('classes', ...): Diese Funktion startet eine Suche in der Hiera-Hierarchie nach dem Schlüsselclasses.{merge => 'unique'}: Dies ist das "Zusammenführungsverhalten". Es weist Hiera an, nicht beim ersten Treffer aufzuhören, sondern alle Ebenen der Hierarchie zu durchsuchen und eine Liste aller gefundenen Werte fürclasseszu erstellen, wobei Duplikate entfernt werden..include: Diese Funktion nimmt die resultierende Liste von Klassennamen und deklariert sie, sodass Puppet sie anwendet.
Für den Server arch-2.lxd findet Hiera also test in der Node-spezifischen Datei und all_system in der common.yaml-Datei, fügt beide zu einer Liste zusammen und wendet beide Klassen an.