devlog 003Infrastruktur
Webserver auf Proxmox umgezogen
Der Server hinter oexyz.de läuft seit heute als virtuelle Maschine auf einem Proxmox-Knoten statt auf einem Mini-PC. 66 Sekunden ohne Antwort, Rückweg offen.
Bis heute lief diese Seite auf einem HP-Mini-PC: Ghost und MySQL in Docker, davor nginx, nach außen erreichbar über die Pangolin-Edge in AWS Frankfurt und einen ausgehenden Newt-Tunnel. Das funktionierte, passte aber nicht mehr zum Rest der Plattform. Snapshots, Sicherungen und Ressourcen sollten dort liegen, wo alles andere auch läuft: auf Proxmox.
Statt die Platte zu klonen, habe ich neu gebaut. Eine frische Ubuntu-VM aus dem Cloud-Image, per cloud-init eingerichtet, dann Schritt für Schritt dieselben Pakete und Konfigurationen wie auf dem Mini-PC: nginx, SSH, sysctl, auditd, fail2ban, ufw, Postfix. Die Docker-Images sind auf dieselben Digests gepinnt, die Anwendungsdaten wurden aus dem gestoppten Stack roh kopiert und gegen ein Manifest geprüft. Jeder Schritt ist ein etckeeper-Commit, der Unterschied zwischen alt und neu bleibt damit nachlesbar.
Ein Stolperstein: Die erste VM hatte nach dem ersten Start kein Netz. Der Grund war ein Wettlauf beim Umbenennen der Netzwerkschnittstelle durch cloud-init, das Gerät war in dem Moment noch belegt. Mit dem Standard-Maschinentyp statt q35 lief der zweite Anlauf ohne Eingriff durch.
Die Umschaltung selbst war eine Zeile im Newt-Blueprint: neues Ziel für Weiterleitung und Health-Check, Container neu gestartet. Von außen war die Seite 66 Sekunden nicht erreichbar, danach antwortete die VM. Eine Lehre aus dem Vorlauf: Was man im Pangolin-Dashboard von Hand ändert, überschreibt der Blueprint beim nächsten Start wieder. Geändert wird deshalb nur dort.
Der Rückweg blieb am Tag der Umschaltung offen: Der Mini-PC stand mit gestoppten Diensten bereit, die alte Blueprint-Fassung lag als Sicherung daneben, zwei Befehle hätten zum alten Stand geführt. Gebraucht wurde er nicht. Inzwischen ist der Mini-PC selbst ein Proxmox-Knoten, von seinem alten Stand bleibt ein Archiv auf dem NAS, und die Platten der VM liegen auf gemeinsamem Speicher.
Inzwischen ist diese Seite eine statische Seite ohne Ghost und MySQL. Zwei Container und eine Datenbank, die für eine Handvoll Seiten nie nötig waren, sind damit überflüssig.