Playbooks, Inventory, update-ips.sh, first-boot-setup.sh und Doku unveraendert aus dem alten git-losen Ordner uebernommen. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
62 lines
1.4 KiB
Bash
Executable File
62 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# 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
|
|
#
|
|
# Es macht:
|
|
# 1. Neuen Hostnamen setzen
|
|
# 2. Neue SSH-Host-Keys generieren (wichtig!)
|
|
# 3. Neue Machine-ID generieren
|
|
#
|
|
|
|
set -e
|
|
|
|
# Farben
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m'
|
|
|
|
echo -e "${GREEN}=== First-Boot Setup ===${NC}"
|
|
|
|
# Hostname als Parameter oder interaktiv
|
|
if [ -n "$1" ]; then
|
|
NEW_HOSTNAME="$1"
|
|
else
|
|
read -p "Neuer Hostname (z.B. laptop05): " NEW_HOSTNAME
|
|
fi
|
|
|
|
if [ -z "$NEW_HOSTNAME" ]; then
|
|
echo -e "${RED}Fehler: Kein Hostname angegeben${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
echo -e "${YELLOW}Setze Hostname auf: $NEW_HOSTNAME${NC}"
|
|
|
|
# 1. Hostname setzen
|
|
hostnamectl set-hostname "$NEW_HOSTNAME"
|
|
sed -i "s/127.0.1.1.*/127.0.1.1\t$NEW_HOSTNAME/" /etc/hosts
|
|
|
|
# 2. Neue SSH-Host-Keys generieren
|
|
echo -e "${YELLOW}Generiere neue SSH-Host-Keys...${NC}"
|
|
rm -f /etc/ssh/ssh_host_*
|
|
ssh-keygen -A
|
|
|
|
# 3. Neue Machine-ID generieren
|
|
echo -e "${YELLOW}Generiere neue Machine-ID...${NC}"
|
|
rm -f /etc/machine-id /var/lib/dbus/machine-id
|
|
dbus-uuidgen --ensure=/etc/machine-id
|
|
cp /etc/machine-id /var/lib/dbus/machine-id
|
|
|
|
# 4. SSH-Dienst neustarten
|
|
systemctl restart ssh
|
|
|
|
echo ""
|
|
echo -e "${GREEN}=== Setup abgeschlossen ===${NC}"
|
|
echo -e "Hostname: ${GREEN}$NEW_HOSTNAME${NC}"
|
|
echo ""
|
|
echo "Optional: Rechner neustarten mit 'sudo reboot'"
|
|
echo ""
|