WireGuard-Config ins ISO einbetten (wireguard/ Ordner, .gitignore)

- build-iso.sh erkennt Modell/Hostname aus user-data und sucht
  passende Config in wireguard/{hostname}.conf oder wireguard/m{model}.conf
- user-data: late-commands kopieren wg0.conf vom Installationsmedium
  nach /etc/wireguard/ und aktivieren wg-quick@wg0
- wireguard/ in .gitignore (keine Secrets im Repo)
This commit is contained in:
rene 2026-03-08 19:29:59 +01:00
parent 0c784c7aed
commit 965236428c
3 changed files with 40 additions and 5 deletions

1
.gitignore vendored
View file

@ -1,2 +1,3 @@
*.iso *.iso
.DS_Store .DS_Store
wireguard/

View file

@ -19,6 +19,14 @@ echo "════════════════════════
echo " macbook-setup ISO Builder ($OS)" echo " macbook-setup ISO Builder ($OS)"
echo "════════════════════════════════════════════" echo "════════════════════════════════════════════"
# ── Modell aus user-data erkennen ──────────────────────────────────────────
MODEL=$(grep -o 'setup-base.sh | bash -s -- [0-9]*' "$SCRIPT_DIR/user-data" | grep -o '[0-9]*$')
HOSTNAME=$(grep 'hostname:' "$SCRIPT_DIR/user-data" | awk '{print $2}')
if [[ -z "$MODEL" ]]; then
err "Konnte Modell nicht aus user-data ermitteln"
fi
ok "Modell: MBP $MODEL\" (Hostname: $HOSTNAME)"
# ── Abhängigkeiten ─────────────────────────────────────────────────────── # ── Abhängigkeiten ───────────────────────────────────────────────────────
echo -e "\n=== Abhängigkeiten prüfen ===" echo -e "\n=== Abhängigkeiten prüfen ==="
if [[ "$OS" == "Darwin" ]]; then if [[ "$OS" == "Darwin" ]]; then
@ -57,6 +65,25 @@ cp "$SCRIPT_DIR/user-data" "$TMPDIR/autoinstall/"
cp "$SCRIPT_DIR/meta-data" "$TMPDIR/autoinstall/" cp "$SCRIPT_DIR/meta-data" "$TMPDIR/autoinstall/"
ok "user-data und meta-data bereit" ok "user-data und meta-data bereit"
# ── WireGuard-Config einbetten ────────────────────────────────────────────
echo -e "\n=== WireGuard-Config ==="
WG_CONF=""
# Suche nach passender Config: wireguard/m16.conf, wireguard/m13.conf, etc.
for candidate in "$SCRIPT_DIR/wireguard/${HOSTNAME}.conf" "$SCRIPT_DIR/wireguard/m${MODEL}.conf"; do
if [[ -f "$candidate" ]]; then
WG_CONF="$candidate"
break
fi
done
if [[ -n "$WG_CONF" ]]; then
cp "$WG_CONF" "$TMPDIR/autoinstall/wg0.conf"
ok "WireGuard-Config eingebettet: $(basename "$WG_CONF")"
else
warn "Keine WireGuard-Config gefunden in wireguard/ — übersprungen"
warn "Erwartet: wireguard/${HOSTNAME}.conf oder wireguard/m${MODEL}.conf"
fi
# ── GRUB-Eintrag vorbereiten ──────────────────────────────────────────── # ── GRUB-Eintrag vorbereiten ────────────────────────────────────────────
echo -e "\n=== GRUB-Eintrag vorbereiten ===" echo -e "\n=== GRUB-Eintrag vorbereiten ==="
@ -98,10 +125,13 @@ rm -rf "$TMPDIR"
ok "ISO erstellt: $OUTPUT_ISO" ok "ISO erstellt: $OUTPUT_ISO"
echo "" echo ""
echo "Größe: $(du -sh "$OUTPUT_ISO" | cut -f1)" echo "Größe: $(du -sh "$OUTPUT_ISO" | cut -f1)"
echo "Modell: MBP $MODEL\" | Hostname: $HOSTNAME"
[[ -n "$WG_CONF" ]] && echo "WireGuard: $(basename "$WG_CONF")" || echo "WireGuard: nicht eingebettet"
echo "" echo ""
warn "Nächster Schritt: ISO auf Ventoy-Stick kopieren" warn "Nächster Schritt: ISO auf USB-Stick schreiben"
if [[ "$OS" == "Darwin" ]]; then if [[ "$OS" == "Darwin" ]]; then
echo " cp $OUTPUT_ISO /Volumes/Ventoy/" echo " diskutil unmountDisk /dev/diskX"
echo " sudo dd if=$OUTPUT_ISO of=/dev/rdiskX bs=4m"
else else
echo " cp $OUTPUT_ISO /media/\$USER/Ventoy/" echo " sudo dd if=$OUTPUT_ISO of=/dev/sdX bs=4M status=progress"
fi fi

View file

@ -6,7 +6,7 @@ autoinstall:
layout: de layout: de
variant: mac variant: mac
identity: identity:
hostname: macbook hostname: m16
username: rene username: rene
password: "$6$lXt4c5wub9FgGOj2$rjwW.UjraH2yYwxabXH.diOu86KSfW.AZvIVRmScbH7Nmh.zLbeMbNITGtRKfpGhe01nqgw4fL8QK67B1oWaq." password: "$6$lXt4c5wub9FgGOj2$rjwW.UjraH2yYwxabXH.diOu86KSfW.AZvIVRmScbH7Nmh.zLbeMbNITGtRKfpGhe01nqgw4fL8QK67B1oWaq."
ssh: ssh:
@ -17,8 +17,12 @@ autoinstall:
late-commands: late-commands:
# User rene zur sudo-Gruppe hinzufuegen # User rene zur sudo-Gruppe hinzufuegen
- curtin in-target --target=/target -- usermod -aG sudo rene - curtin in-target --target=/target -- usermod -aG sudo rene
# WireGuard-Config vom Installationsmedium kopieren (falls vorhanden)
- bash -c 'if [ -f /cdrom/autoinstall/wg0.conf ]; then mkdir -p /target/etc/wireguard && cp /cdrom/autoinstall/wg0.conf /target/etc/wireguard/wg0.conf && chmod 600 /target/etc/wireguard/wg0.conf; fi'
# WireGuard beim Boot aktivieren
- curtin in-target --target=/target -- bash -c 'if [ -f /etc/wireguard/wg0.conf ]; then systemctl enable wg-quick@wg0; fi'
# System-Setup in chroot (Pakete, Configs, Locale, Services) # System-Setup in chroot (Pakete, Configs, Locale, Services)
- curtin in-target --target=/target -- bash -c 'curl -fsSL https://git.motocamp.de/rene/macbook-setup/raw/branch/main/setup-base.sh | bash -s -- 13' - curtin in-target --target=/target -- bash -c 'curl -fsSL https://git.motocamp.de/rene/macbook-setup/raw/branch/main/setup-base.sh | bash -s -- 16'
# Desktop-Setup als Firstboot-Autostart einrichten # Desktop-Setup als Firstboot-Autostart einrichten
- curtin in-target --target=/target -- mkdir -p /home/rene/.config/autostart - curtin in-target --target=/target -- mkdir -p /home/rene/.config/autostart
- curtin in-target --target=/target -- bash -c 'cat > /home/rene/.config/autostart/macbook-setup-desktop.desktop <<AUTOSTART - curtin in-target --target=/target -- bash -c 'cat > /home/rene/.config/autostart/macbook-setup-desktop.desktop <<AUTOSTART