Jahres-Reimage: Boot-Check, GRUB-Eintrag, Clonezilla-Batch-Skript
reimage-check erkennt die Platte DEZNTRSICHERUNG mit neuerem Image und bootet in den GRUB-Eintrag Schul-Neuinstallation (Clonezilla toram). schul-reimage.sh: Mini-Menue (AUFSPIELEN auto nach 20 s / IMAGE ERSTELLEN / Abbrechen), ocs-sr im Batch-Modus ohne Nachpruefung (E-004), Hostname bleibt erhalten, Admin-Key nur auf laptop03 (E-005). local.yml haelt alles per Pull aktuell. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
37
files/reimage-check.sh
Normal file
37
files/reimage-check.sh
Normal file
@@ -0,0 +1,37 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Prueft beim Boot, ob die Image-Platte (DEZNTRSICHERUNG) angeschlossen ist
|
||||
# und ein neueres Image traegt als das installierte. Wenn ja: einmaliger
|
||||
# Reboot in den GRUB-Eintrag "Schul-Neuinstallation" (Clonezilla, toram).
|
||||
#
|
||||
# Sicherungen gegen Fehlausloesung:
|
||||
# - laptop03 (Master) bespielt sich nie selbst (E-004)
|
||||
# - Versionsvergleich verhindert Reimage-Schleifen bei steckender Platte
|
||||
#
|
||||
set -u
|
||||
|
||||
LABEL="DEZNTRSICHERUNG"
|
||||
VERSION_FILE="/etc/schul-image-version"
|
||||
GRUB_ENTRY="Schul-Neuinstallation"
|
||||
|
||||
# Der Master ist tabu — doppelte Absicherung zusaetzlich zum deaktivierten Service
|
||||
[ "$(hostname)" = "laptop03" ] && exit 0
|
||||
|
||||
DEV=$(blkid -L "$LABEL" 2>/dev/null) || exit 0
|
||||
[ -n "$DEV" ] || exit 0
|
||||
|
||||
MNT=$(mktemp -d)
|
||||
mount -o ro "$DEV" "$MNT" 2>/dev/null || { rmdir "$MNT"; exit 0; }
|
||||
NEWEST=$(find "$MNT" -maxdepth 1 -name 'schule-laptop-*' -type d -printf '%f\n' 2>/dev/null | sort | tail -1)
|
||||
umount "$MNT"
|
||||
rmdir "$MNT"
|
||||
|
||||
[ -n "$NEWEST" ] || exit 0
|
||||
INSTALLED=$(cat "$VERSION_FILE" 2>/dev/null || echo "0")
|
||||
|
||||
if [ "$NEWEST" \> "$INSTALLED" ]; then
|
||||
echo "Neues Image '$NEWEST' gefunden (installiert: '$INSTALLED') — Neuinstallation beim naechsten Boot."
|
||||
grub-reboot "$GRUB_ENTRY" && systemctl reboot
|
||||
fi
|
||||
|
||||
exit 0
|
||||
Reference in New Issue
Block a user