Eine VM aus dem ProxDeploy-Template ausrollen, vollständig per API: Klonen, Hardware, cloud-init, Start, Guest-Agent und Provisionierung der Profile über den Agent – ohne SSH. Der Fortschritt kommt aus der Logdatei im Gast, je Profil eine Marke. Der Dry-Run läuft durch dieselben Phasen mit einem Trocken-Client und zeigt jeden geplanten Proxmox-Aufruf und den passenden CLI-Befehl. Der Assistent hat 9 Schritte, den Zustand in der URL und bietet an, ein fehlendes Template im selben Auftrag zu bauen. Auf pve-demo abgenommen: pd-test01 (base, docker) per API, pd-test02 (base, zabbix-agent) über den Assistenten, beide per SSH geprüft. Dabei gefunden: file-write scheitert an Umlauten – Skripte gehen jetzt base64-kodiert hinüber. Closes #008 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2.2 KiB
2.2 KiB
#008 Deploy-Assistent und VM ausrollen
Status: erledigt Meilenstein: v0.2.0 Labels: feature Geschätzt: 10 h Tatsächlich: 0 h 36 min
Ziel
Debian-13-VM aus Template vollständig unattended, Assistent mit Dry-Run und CLI-Befehl.
Aufgaben
- Anfrageschema für Web, CLI, Batch und Vorlagen (
src/lib/schemas/ausrollen.ts), CLI-Befehl daraus - Ablauf VM: Prüfungen (Node, Template, Storage, Bridge/VLAN, VMID), Klonen (mit einem Wiederholversuch bei belegter VMID), Hardware + Disk vergrößern, cloud-init (sshkeys korrekt kodiert, ciupgrade=0), Start, Guest-Agent (ping, IP), Provisionierung per Agent mit Live-Fortschritt
- Dry-Run über denselben Ablauf mit Trocken-Client:
POST /api/v1/auftraege/plan - Fehlendes Template → „Template vorher bauen“ im Assistenten, läuft als Phase im selben Auftrag
- Assistent mit 9 Schritten, Zustand in der URL, jederzeit zurückspringbar, Handy-tauglich
- Aufräumen nach Bestätigung → folgt mit #014 (Verlauf); bis dahin werden angelegte VMIDs je Auftrag festgehalten
Akzeptanzkriterien
- VM mit base-Profil per SSH erreichbar: pd-test01 (base, docker) per API, pd-test02 (base, zabbix-agent) über den Assistenten auf pve-demo, 2026-10-12
- Fehlerfall zeigt Ursache + Hinweis (Tests: VLAN auf nicht VLAN-fähiger Bridge, Agent antwortet nicht, Profil scheitert mit Code)
Abhängigkeiten
#007
Notizen / Entscheidungen
- Fund beim ersten echten Deploy:
agent/file-writescheitert an Nicht-ASCII („Wide character in subroutine entry“). ProxDeploy kodiert die Skriptstücke jetzt selbst als base64 (encode=0) und teilt nach Bytes. - Die Agent-Endpunkte antworten unterschiedlich (exec →
{pid}, exec-status/file-read direkt, ping/network-get-interfaces →{result}). - Fortschritt der Provisionierung aus der Logdatei im Gast (
/var/log/proxdeploy-provisionierung.log, per file-read), Marken je Profil. - Klon auf anderen Node nur bei geteiltem Storage; sonst sagt die Prüfung, welchen Node man wählen soll.
- Zwei Felder hießen „Server“ (Umschalter und Assistent) – der Umschalter heißt jetzt „Aktiver Server“.
- Testgäste auf pve-demo: VM 100
pd-test01, VM 101pd-test02(Tagproxdeploy-test).