anpassen von git ignore

This commit is contained in:
2026-01-29 18:41:59 +01:00
parent 85bcb598df
commit dc06ee04d3
13 changed files with 336 additions and 59 deletions

49
hiera_config.md Normal file
View 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.