diff --git a/files/first-boot-setup.sh b/files/first-boot-setup.sh index 33a63b7..58f35b9 100755 --- a/files/first-boot-setup.sh +++ b/files/first-boot-setup.sh @@ -3,12 +3,19 @@ # First-Boot Setup fuer geklonte Rechner # # Dieses Script nach dem Klonen EINMAL ausfuehren auf jedem Rechner: -# sudo ~/ansible-schule/files/first-boot-setup.sh laptop05 +# sudo ~/projekte/schul-laptops/files/first-boot-setup.sh laptop05 # # Es macht: # 1. Neuen Hostnamen setzen # 2. Neue SSH-Host-Keys generieren (wichtig!) # 3. Neue Machine-ID generieren +# 4. Privaten Admin-Key entfernen (ausser auf laptop03, siehe docs/decisions.md E-005) +# 5. Image-Versionsdatei setzen (falls nicht vorhanden) +# 6. ansible-pull-Timer aktivieren und ersten Lauf anstossen +# +# Beim automatischen Reimage von der externen Platte uebernimmt das +# Clonezilla-Restore-Skript diese Schritte — dieses Script ist nur fuer +# die Erstinstallation per USB-Stick gedacht. # set -e @@ -53,9 +60,30 @@ cp /etc/machine-id /var/lib/dbus/machine-id # 4. SSH-Dienst neustarten systemctl restart ssh +# 5. Privaten Admin-Key entfernen — der Gitea-Admin-Key gehoert nur auf laptop03. +# Der Read-only-Deploy-Key unter /root/.ssh bleibt (wird fuer den Pull-Fallback gebraucht). +if [ "$NEW_HOSTNAME" != "laptop03" ]; then + echo -e "${YELLOW}Entferne privaten Admin-Key...${NC}" + rm -f /home/puettmann/.ssh/id_ed25519 /home/puettmann/.ssh/id_ed25519.pub +fi + +# 6. Image-Versionsdatei: "0" ist aelter als jeder Image-Name, d.h. das naechste +# angesteckte Image wuerde ein Reimage ausloesen — das Restore-Skript schreibt +# hier den echten Image-Namen hinein. +if [ ! -f /etc/schul-image-version ]; then + echo "0" > /etc/schul-image-version +fi + +# 7. ansible-pull aktivieren: ab jetzt holt sich der Laptop alles selbst. +echo -e "${YELLOW}Aktiviere ansible-pull-Timer...${NC}" +systemctl daemon-reload +systemctl enable --now ansible-pull.timer +systemctl start --no-block ansible-pull.service + echo "" echo -e "${GREEN}=== Setup abgeschlossen ===${NC}" echo -e "Hostname: ${GREEN}$NEW_HOSTNAME${NC}" +echo "Der erste ansible-pull-Lauf wurde gestartet (Log: journalctl -u ansible-pull)." echo "" echo "Optional: Rechner neustarten mit 'sudo reboot'" echo ""