rename dmc12 inventory to cloudlorean and vault admin_password

- replace inventory/dmc12.yml with cloudlorean.yml (+ group_vars) and update
  all README/AGENTS call examples and the inventory table
- move admin_password hash into encrypted vault.yml; remove plaintext copies
  from roles/bootstrap/defaults and group_vars/external.yml
- bootstrap.yml loads vault.yml via vars_files (same pattern as monitoring)
- monitoring: PSK config/registration updates, docker role defaults,
  os-updates logging/reboot refinements, ansible.cfg/execute.sh tweaks
- add .project-wiki knowledge base and .github agent instructions
This commit is contained in:
DerLinkman
2026-09-09 14:14:18 +02:00
parent a31751af1d
commit 30f3e9a4c6
96 changed files with 3602 additions and 138 deletions
+28 -16
View File
@@ -52,7 +52,7 @@ gleichnamige Datei sowie ein Eintrag in `group_vars/`:
| Inventory | Datei | group_vars | Beschreibung |
|------------------|--------------------|------------------------|-------------------------------------------------|
| DMC12 (Umgebung) | `dmc12.yml` | `debian.yml` | Debian-Hosts & Proxmox-Knoten |
| Cloudlorean | `cloudlorean.yml` | `cloudlorean.yml`, `debian.yml` | Debian-Hosts & Proxmox-Knoten (u. a. `dmc12`) |
| Home | `home.yml` | `home.yml` | Heimisches Netzwerk (10.13.37.0/24) |
| External | `external.yml` | `external.yml` | Externe Hosts (IPv6) |
@@ -73,20 +73,20 @@ Spiegelserver und autorisierte SSH-Keys.
### Aufrufbeispiele
```bash
# Ersteinrichtung aller Hosts im DMC12-Inventory
ansible-playbook -i inventory/dmc12.yml bootstrap.yml
# Ersteinrichtung aller Hosts im Cloudlorean-Inventory
ansible-playbook -i inventory/cloudlorean.yml bootstrap.yml
# Nur Docker auf einem einzelnen Host installieren
ansible-playbook -i inventory/home.yml playbooks/docker.yml -l rp
# OS-Updates inkl. Healthcheck
ansible-playbook -i inventory/dmc12.yml playbooks/os-updates-deb.yml
ansible-playbook -i inventory/cloudlorean.yml playbooks/os-updates-deb.yml
# Hawser aktualisieren
ansible-playbook -i inventory/dmc12.yml playbooks/upgrade-hawser.yml
ansible-playbook -i inventory/cloudlorean.yml playbooks/upgrade-hawser.yml
# SSH-Keys härtene
ansible-playbook -i inventory/dmc12.yml playbooks/hardening/manage-ssh-keys.yml
ansible-playbook -i inventory/cloudlorean.yml playbooks/hardening/manage-ssh-keys.yml
```
## Rollen
@@ -103,13 +103,14 @@ ansible-playbook -i inventory/dmc12.yml playbooks/hardening/manage-ssh-keys.yml
## Secrets & Vault
Sensible Werte (z. B. `monitoring_zabbix_api_password`, `admin_password`)
liegen verschlüsselt in `vault.yml`. Zum Entschlüsseln wird eine Vault-Passwort
benötigt, die in `.vault_pass` hinterlegt ist (git-ignored). Beim Aufruf muss
Ansible die Vault-Passwort-Datei kennen:
Sensible Werte (`monitoring_zabbix_api_password`, `admin_password`, Proxmox-Zugang)
liegen verschlüsselt in `vault.yml`. `playbooks/monitoring.yml` und `bootstrap.yml`
binden die Datei selbst per `vars_files` ein. Zum Entschlüsseln wird eine
Vault-Passwort benötigt, die in `.vault_pass` hinterlegt ist (git-ignored).
Beim Aufruf muss Ansible die Vault-Passwort-Datei kennen:
```bash
ansible-playbook -i inventory/dmc12.yml --vault-password-file .vault_pass bootstrap.yml
ansible-playbook -i inventory/cloudlorean.yml --vault-password-file .vault_pass bootstrap.yml
```
> **Hinweis:** Die Datei `setenv.sh` enthält Zugangsdaten für Proxmox und ist
@@ -125,14 +126,25 @@ git-ignored und dient als lokales Audit-Trail.
## Konfiguration
`ansible.cfg` deaktiviert Host-Key-Checking und legt `./roles` als
Rollen-Pfad fest. SSH-Verbindungen verwenden
`StrictHostKeyChecking=no` sowie `/dev/null` als KnownHosts-Datei, was die
Ersteinrichtung neuer Hosts erleichtert – in produktiven Umgebungen
entsprechend restriktiver konfigurieren.
Rollen-Pfad fest. Für schnellere Ausführungen werden standardmäßig 20 parallele
Worker (`forks`), SSH-Pipelining und persistente SSH-Verbindungen
(`ControlPersist=60s`) verwendet. `gathering=smart` vermeidet die erneute
Faktenabfrage innerhalb eines Laufs, ohne einen persistenten Fakten-Cache mit
potenziell veralteten Hostdaten einzuführen. `internal_poll_interval` reduziert
die Wartezeit des Controllers zwischen Worker-Abfragen.
SSH-Verbindungen verwenden weiterhin `StrictHostKeyChecking=no` sowie `/dev/null`
als KnownHosts-Datei, was die Ersteinrichtung neuer Hosts erleichtert – in
produktiven Umgebungen entsprechend restriktiver konfigurieren. Bei sehr vielen
gleichzeitig verwalteten Hosts kann `forks` über `ANSIBLE_FORKS` oder einen
zusätzlichen Konfigurationswert an die Controller- und Netzwerkressourcen
angepasst werden. Fact-Caching und alternative Strategien wie `free` sind nicht
global aktiviert, da sie bei diesen Playbooks veraltete Fakten oder eine andere
Ausführungsreihenfolge verursachen können.
## Beitragen
1. Änderungen lokal testen – idealerweise über `./execute.sh` im Container.
2. Variablen in `defaults/main.yml` der jeweiligen Rolle pflegen und in der
Rollen-README dokumentieren.
3. Keine Secrets unverschlüsselt committen (Vault nutzen).
3. Keine Secrets unverschlüsselt committen (Vault nutzen).