anpassen von git ignore
This commit is contained in:
49
hiera_config.md
Normal file
49
hiera_config.md
Normal file
@@ -0,0 +1,49 @@
|
||||
# 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`
|
||||
|
||||
```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 Unterverzeichnis `data` sind. Das Haupt-Datenverzeichnis ist also `code/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.
|
||||
|
||||
1. **`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.
|
||||
|
||||
2. **`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:
|
||||
```puppet
|
||||
lookup('classes', {merge => 'unique'}).include
|
||||
```
|
||||
- `lookup('classes', ...)`: Diese Funktion startet eine Suche in der Hiera-Hierarchie nach dem Schlüssel `classes`.
|
||||
- `{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ür `classes` zu 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.
|
||||
Reference in New Issue
Block a user