#!/usr/bin/env bash # packer/tests/web.sh – Abnahmetests für das Web-Image set -euo pipefail fail() { echo "TEST FEHLGESCHLAGEN: $*" >&2; exit 1; } systemctl is-enabled --quiet nginx || fail "nginx ist nicht aktiviert" systemctl is-active --quiet nginx || fail "nginx läuft nicht" # Den Health-Endpunkt legt erst cloud-init an – für den Test kurz selbst erzeugen echo ok > /var/www/html/health trap 'rm -f /var/www/html/health' EXIT curl -fsS http://localhost/health | grep -qx ok || fail "nginx liefert keine statischen Dateien aus" test -s /etc/image-release || fail "/etc/image-release fehlt" if dpkg -l unattended-upgrades 2>/dev/null | grep -q '^ii'; then fail "unattended-upgrades ist installiert" fi # Setzt die Härtung aus dem Basis-Image voraus sshd -T | grep -qx 'permitrootlogin no' || fail "Root-Login per SSH ist erlaubt" echo "Alle Image-Tests bestanden."