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:
@@ -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).
|
||||
|
||||
Reference in New Issue
Block a user