Compare commits

...

2 Commits

Author SHA1 Message Date
bc9cefa1b8 feat(mint-image): GOLDEN_IMAGE_URL auf echtes Referenz-VM-Archiv umgestellt
Zeigt jetzt auf das aus der Proxmox-Referenz-VM golden-linux-mint
gezogene, bereinigte Archiv (linux-mint-22.3-cinnamon.tar.zst,
2,3 GiB komprimiert), gehostet ueber die neue /golden-images/-Route in
provisioning-server. Live per Public-HTTPS verifiziert (voller
Download, byte-exakte Groesse, Traversal/fehlende Datei korrekt
abgelehnt).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-31 10:10:11 +02:00
86ebea6d66 fix(golden-image): tar --exclude braucht relative Pfade bei -C /
--exclude=/proc (mit fuehrendem Slash) matcht nicht gegen die von
'tar -C / .' erzeugten relativen Elementnamen (./proc/...). Live gegen
die echte Referenz-VM entdeckt: der erste Packlauf haette dadurch
/proc, /sys, /dev, /run, /tmp, /var/tmp real mit eingepackt (u.a.
/proc/kcore) statt sie auszuschliessen. Abgebrochen, Excludes auf
relative Pfade (proc, sys, dev, run, tmp, var/tmp) umgestellt und
lokal mit einem Testverzeichnis verifiziert (inkl. Gegenprobe: ein
'runner/'-Verzeichnis bleibt vom 'run'-Exclude unberuehrt).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-31 09:38:09 +02:00
2 changed files with 15 additions and 8 deletions

View File

@ -36,11 +36,13 @@ GOLDEN_IMAGE_FILE="${RUNTIME_DIR}/golden-image.tar.zst"
TARGET_DIR="/target"
declare -a MOUNT_STACK=()
# TODO(Phase 3): muss vor dem ersten echten Self-Service-Testlauf tatsaechlich
# auf anode bereitgestellt werden (siehe ADR-0024-Plan, "Ablage/
# Bereitstellung: ueber anode per HTTPS als statische Datei") - aktuell nur
# lokal auf enterprise gebaut und getestet.
GOLDEN_IMAGE_URL="https://anode.tuxflotte.de/golden-images/debian-trixie-base.tar.zst"
# Aus einer manuell in Proxmox installierten Referenz-VM gezogen (nicht
# debootstrap - siehe ADR-0024-Nachtrag "Referenz-VM statt debootstrap",
# 31.08.2026), bereinigt via scripts/package_golden_image.sh, gehostet
# ueber die unauthentifizierte /golden-images/-Route in
# provisioning-server (analog ks.cfg) - live verifiziert per Public-HTTPS-
# Download (200, byte-exakte Groesse) am 31.08.2026.
GOLDEN_IMAGE_URL="https://anode.tuxflotte.de/golden-images/linux-mint-22.3-cinnamon.tar.zst"
backend_log() {
printf '[backend:%s] %s\n' "${BACKEND_KEY}" "$*" >&2

View File

@ -69,10 +69,15 @@ rm -f /home/*/.bash_history 2>/dev/null || true
# zweiten Durchlauf.
echo "==> Packe nach ${OUTPUT_FILE}"
# WICHTIG: tar -C / erzeugt relative Elementnamen (./proc/..., ./sys/...),
# nicht absolute (/proc/...) - ein --exclude mit fuehrendem Slash matcht
# dagegen NICHT (live am 31.08.2026 entdeckt: das lief zunaechst
# unbemerkt gegen die echte Referenz-VM und haette u.a. /proc/kcore mit
# eingepackt). Ausschluesse deshalb ohne fuehrenden Slash angeben.
tar --numeric-owner --xattrs \
--exclude=/proc --exclude=/sys --exclude=/dev \
--exclude=/run --exclude=/tmp --exclude=/var/tmp \
--exclude="${OUTPUT_FILE}" \
--exclude=proc --exclude=sys --exclude=dev \
--exclude=run --exclude=tmp --exclude=var/tmp \
--exclude="${OUTPUT_FILE#/}" \
-C / -cf - . | zstd -f -T0 -19 -o "${OUTPUT_FILE}"
echo "==> Fertig: ${OUTPUT_FILE} ($(du -h "${OUTPUT_FILE}" | cut -f1))"