first-boot-setup.sh: Admin-Key-Schutz, Versionsdatei, Pull-Aktivierung
Entfernt den privaten Gitea-Admin-Key auf allen Laptops ausser laptop03 (E-005), setzt /etc/schul-image-version und aktiviert den ansible-pull-Timer samt erstem Lauf. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -3,12 +3,19 @@
|
|||||||
# First-Boot Setup fuer geklonte Rechner
|
# First-Boot Setup fuer geklonte Rechner
|
||||||
#
|
#
|
||||||
# Dieses Script nach dem Klonen EINMAL ausfuehren auf jedem 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:
|
# Es macht:
|
||||||
# 1. Neuen Hostnamen setzen
|
# 1. Neuen Hostnamen setzen
|
||||||
# 2. Neue SSH-Host-Keys generieren (wichtig!)
|
# 2. Neue SSH-Host-Keys generieren (wichtig!)
|
||||||
# 3. Neue Machine-ID generieren
|
# 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
|
set -e
|
||||||
@@ -53,9 +60,30 @@ cp /etc/machine-id /var/lib/dbus/machine-id
|
|||||||
# 4. SSH-Dienst neustarten
|
# 4. SSH-Dienst neustarten
|
||||||
systemctl restart ssh
|
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 ""
|
||||||
echo -e "${GREEN}=== Setup abgeschlossen ===${NC}"
|
echo -e "${GREEN}=== Setup abgeschlossen ===${NC}"
|
||||||
echo -e "Hostname: ${GREEN}$NEW_HOSTNAME${NC}"
|
echo -e "Hostname: ${GREEN}$NEW_HOSTNAME${NC}"
|
||||||
|
echo "Der erste ansible-pull-Lauf wurde gestartet (Log: journalctl -u ansible-pull)."
|
||||||
echo ""
|
echo ""
|
||||||
echo "Optional: Rechner neustarten mit 'sudo reboot'"
|
echo "Optional: Rechner neustarten mit 'sudo reboot'"
|
||||||
echo ""
|
echo ""
|
||||||
|
|||||||
Reference in New Issue
Block a user