platform: OpenTofu/Ansible für Proxmox, CI, Makefile, Doku-Abgleich

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-12 00:54:23 +02:00
co-authored by Claude Opus 5.5
parent cb5a413169
commit f22eaa8449
27 changed files with 623 additions and 6 deletions
+19
View File
@@ -0,0 +1,19 @@
# platform/proxmox
Proxmox-spezifische Schicht (austauschbar, siehe PLAN §7.2). Eingabe ist immer `sites/<site>/proxmox.yaml`.
**Status:** geschrieben, aber noch **nicht gegen den echten Cluster getestet**. Erster Lauf beim gemeinsamen Deployment, jeweils mit `tofu plan` bzw. `ansible-playbook --check`.
## Ablauf
1. **Inventar:** auf jedem Node `knaster inventory collect` ausführen und `sites/knaster/inventory.yaml` ersetzen. Danach `knaster placement plan --inventory sites/knaster/inventory.yaml` und die Ergebnisse in `proxmox.yaml` übertragen (PCI-Pfade über `lspci -nn | grep -i nvidia`, IOMMU-Gruppen).
2. **Hosts vorbereiten:** `ansible-playbook playbooks/site.yml --limit pve_hosts`. Setzt IOMMU und VFIO und sperrt die NVIDIA-Treiber auf dem Host. Danach die Hosts neu starten. Der ZFS-Pool `tank` wird **nicht** automatisch angelegt (Datenverlustgefahr), die Rolle gibt dafür den Befehl aus.
3. **Template:** pro Node ein Ubuntu-24.04-Cloud-Image als Template mit VMID 9000.
4. **VMs/LXC:** `cd tofu && tofu init && tofu plan -var proxmox_api_token=...` und danach `tofu apply`.
5. **Gäste:** `ansible-playbook playbooks/site.yml --limit gpu_vms,infra`. Installiert die Treiber pro Generation gepinnt (legacy/modern), das Container-Toolkit, Docker und den Xid-Exporter.
6. **Dienste:** `deploy/compose/<rolle>` auf den jeweiligen Gästen starten.
## Bewusste Grenzen
- Keine Live-Migration von GPU-VMs. HA gilt nur für den Infra-LXC (mit ZFS-Replikation alle 15 Min.).
- Der Proxmox-API-Token für den Healer braucht nur `VM.PowerMgmt` auf den GPU-VMs und `Sys.PowerMgmt` (Host-Neustart, nur mit Freigabe).