diff --git a/.gitignore b/.gitignore index 153f1f7..3880bdb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ *.iso .DS_Store +wireguard/ diff --git a/build-iso.sh b/build-iso.sh index 4817a29..85b3a94 100755 --- a/build-iso.sh +++ b/build-iso.sh @@ -19,6 +19,14 @@ echo "════════════════════════ echo " macbook-setup ISO Builder ($OS)" 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 ─────────────────────────────────────────────────────── echo -e "\n=== Abhängigkeiten prüfen ===" if [[ "$OS" == "Darwin" ]]; then @@ -57,6 +65,25 @@ cp "$SCRIPT_DIR/user-data" "$TMPDIR/autoinstall/" cp "$SCRIPT_DIR/meta-data" "$TMPDIR/autoinstall/" 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 ──────────────────────────────────────────── echo -e "\n=== GRUB-Eintrag vorbereiten ===" @@ -98,10 +125,13 @@ rm -rf "$TMPDIR" ok "ISO erstellt: $OUTPUT_ISO" echo "" 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 "" -warn "Nächster Schritt: ISO auf Ventoy-Stick kopieren" +warn "Nächster Schritt: ISO auf USB-Stick schreiben" 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 - echo " cp $OUTPUT_ISO /media/\$USER/Ventoy/" + echo " sudo dd if=$OUTPUT_ISO of=/dev/sdX bs=4M status=progress" fi diff --git a/user-data b/user-data index 95f135e..4b23e6c 100644 --- a/user-data +++ b/user-data @@ -6,7 +6,7 @@ autoinstall: layout: de variant: mac identity: - hostname: macbook + hostname: m16 username: rene password: "$6$lXt4c5wub9FgGOj2$rjwW.UjraH2yYwxabXH.diOu86KSfW.AZvIVRmScbH7Nmh.zLbeMbNITGtRKfpGhe01nqgw4fL8QK67B1oWaq." ssh: @@ -17,8 +17,12 @@ autoinstall: late-commands: # User rene zur sudo-Gruppe hinzufuegen - 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) - - 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 - 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 <