From 815e197dea945c4ee5fcb3c4035242a763ad9cc3 Mon Sep 17 00:00:00 2001 From: Gordon Zimm Date: Fri, 25 Sep 2026 10:17:22 +0200 Subject: [PATCH] ESPO-02: apt-Ausgabe auffangen, Standmeldungen in die stumme Strecke Der erste Lauf auf der Pilotkunden-VM endete Failed, sichtbar war nur needrestarts Abschlussmeldung aus dem apt-Lauf - also die Stelle, an der die Pakete fertig installiert waren. Zwischen apt-mark hold und docker --version gibt das Skript nichts aus; aus dem Protokoll liess sich deshalb nicht lesen, wo der Lauf stehen geblieben ist. Zwei Aenderungen: Die lange Ausgabe des apt-Laufs wird aufgefangen und nur im Fehlerfall gezeigt (letzte 30 Zeilen) - sie verdraengt sonst den Bericht am Ende, dasselbe Problem wie der Pull-Fortschritt bei ESPO-03. Und die stumme Strecke bekommt vier knappe Standmeldungen, sodass die letzte Zeile der Ausgabe immer verraet, wie weit der Lauf gekommen ist. Ausserdem tragen jetzt alle Abbrueche des Hauptskripts die Zeile ESPO02_ERGEBNIS: FEHLER - der Script Monitor sucht danach. Co-Authored-By: Claude Opus 5 --- rmm-tasks/ESPO-02-Docker.sh | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/rmm-tasks/ESPO-02-Docker.sh b/rmm-tasks/ESPO-02-Docker.sh index 0093e00..693fa41 100755 --- a/rmm-tasks/ESPO-02-Docker.sh +++ b/rmm-tasks/ESPO-02-Docker.sh @@ -6,7 +6,7 @@ set -u # Standzeile: zeigt im Protokoll, welche Fassung tatsaechlich gelaufen ist. -echo "ESPO-02-Docker, Skriptstand 2026-09-24" +echo "ESPO-02-Docker, Skriptstand 2026-09-25" FEHLER=0 # Gepinnte Staende - hier wird der Flottenstand gesetzt, nicht auf der VM entschieden. @@ -29,7 +29,7 @@ fi DEBIAN_FRONTEND=noninteractive apt-get install -y -q ca-certificates curl >/dev/null install -m 0755 -d /etc/apt/keyrings if [ ! -s /etc/apt/keyrings/docker.asc ]; then - curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc || { echo "FEHLER: Schluessel nicht ladbar"; exit 1; } + curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc || { echo "FEHLER: Schluessel nicht ladbar"; echo "ESPO02_ERGEBNIS: FEHLER"; exit 1; } chmod a+r /etc/apt/keyrings/docker.asc fi cat > /etc/apt/sources.list.d/docker.sources </dev/null +echo "Versionen auf hold gesetzt" # 4. Daemon-Grundlagen: Logrotation, weil der Standardtreiber nicht rotiert. # Keine abweichende Bindeadresse: die Ports muessen fuer den Reverse Proxy erreichbar sein, @@ -60,13 +66,16 @@ cat > /etc/docker/daemon.json <<'CONF' "live-restore": true } CONF +echo "daemon.json geschrieben, Docker-Dienst wird gestartet" systemctl enable --now docker >/dev/null 2>&1 -systemctl restart docker || { echo "FEHLER: docker startet nicht"; exit 1; } +systemctl restart docker || { echo "FEHLER: docker startet nicht"; echo "ESPO02_ERGEBNIS: FEHLER"; exit 1; } +echo "Docker-Dienst laeuft" # 5. Firewall: Docker setzt seine Weiterleitungsregeln vor die INPUT-Kette und umgeht damit ufw. # DOCKER-USER ist die dafuer vorgesehene Stelle. Das Subnetz ermittelt die VM selbst, # es ist also kein kundenspezifischer Wert noetig. -command -v iptables >/dev/null || { echo "FEHLER: iptables fehlt"; exit 1; } +echo "Firewallregeln werden eingerichtet" +command -v iptables >/dev/null || { echo "FEHLER: iptables fehlt"; echo "ESPO02_ERGEBNIS: FEHLER"; exit 1; } cat > /usr/local/sbin/espo-docker-firewall <<'CONF' #!/bin/bash # Laesst an veroeffentlichte Container-Ports nur das eigene Subnetz heran, verwirft den Rest.