Files
proxdeploy/docs/issues/021-template-bau-ohne-ssh.md
T
florian.wildeandClaude Opus 5.5 21edff2141 feat(templates): Template-Bau ohne SSH über eine Bau-Adresse
Ohne SSH zum Node kommt der Guest-Agent jetzt über eine feste
Bau-Adresse ins Template: cloud-init setzt Adresse und den
Bereitstellungsschlüssel für den Standardbenutzer, ProxDeploy meldet
sich per SSH in der VM an, installiert den Agent und entfernt danach
Schlüssel, Adresse und cloud-init-Angaben.

Dabei korrigiert: der Verbindungstest meldete „Template-Bau per API“
auch ohne Weg, den Agent einzubauen. Im Protokoll erscheinen
unveränderte JSON-Felder nicht mehr als geändert.

Refs #021

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 14:36:38 +02:00

1.6 KiB

#021 Template-Bau ohne SSH (Bau-Adresse)

Status: umgesetzt, Abnahme auf pve-demo ausstehend Meilenstein: v0.3.0 Labels: feature, proxmox Geschätzt: 3 h Tatsächlich: 0 h 25 min

Ziel

Templates auch auf Servern ohne SSH zum Node bauen. Der Guest-Agent wird dann nicht per Snippet, sondern über SSH in die Vorbereitungs-VM eingebaut.

Aufgaben

  • Server-Einstellung bauNetz: statische IP/CIDR, Gateway, DNS (Bridge/VLAN wie beim Template-Bau gewählt)
  • Vorbereitungsstart mit cloud-init ipconfig0 = Bau-Adresse und ProxDeploys Bereitstellungsschlüssel in sshkeys
  • SSH in die VM (Host-Key aus der Konsole nicht prüfbar → Schlüssel nur für diese eine Verbindung), qemu-guest-agent installieren, Maschinen-ID leeren, cloud-init clean, ausschalten
  • Fähigkeitserkennung: „Template-Bau per API ohne SSH möglich, wenn Bau-Adresse gesetzt“

Akzeptanzkriterien

  • Template-Bau auf pve-demo mit abgeschaltetem SSH

Abhängigkeiten

#007

Notizen / Entscheidungen

  • Fähigkeitserkennung war zu optimistisch: „Template-Bau per API“ stand auch ohne Node-SSH da, obwohl der Guest-Agent dann nicht hineinkam. Jetzt: per API nur mit Snippet-Weg oder Bau-Adresse.
  • Der Bereitstellungsschlüssel kommt per cloud-init an den Standardbenutzer des Images; danach werden alle authorized_keys, ciuser, sshkeys und die feste Adresse entfernt.
  • Host-Key der frischen VM ist vorher unbekannt (TOFU, nur für diese eine Verbindung).
  • Aus #007 ausgegliedert, damit Etappe 2 nicht wartet: der Testhost hat SSH, und VM-Deployments aus vorhandenen Templates laufen ohnehin ohne SSH.