From ec172f0bf53944234cc89ec5f725ceb918c69d5a Mon Sep 17 00:00:00 2001 From: "manuel.maier" Date: Tue, 27 Jan 2026 23:25:25 +0100 Subject: [PATCH] revert 6cf681a0b1e39807f4347b92d87651dfcdaabcfe revert post_install_v2.sh aktualisiert --- post_install_v2.sh | 225 +++++++++++++++++---------------------------- 1 file changed, 85 insertions(+), 140 deletions(-) diff --git a/post_install_v2.sh b/post_install_v2.sh index 03d9fea..1d9ac6f 100644 --- a/post_install_v2.sh +++ b/post_install_v2.sh @@ -1,154 +1,99 @@ #!/bin/bash # ===================================================== -# Proxmox VE: Debian 13 LXC automatisch erstellen (dialog) +# POST-INSTALL TOOLBOX (dialog GUI-Version) # ===================================================== -set -e +# Prüfen, ob Root +if [ "$EUID" -ne 0 ]; then + echo "Bitte als Root ausführen (sudo)" + exit 1 +fi -# ---- Konfiguration ---- -IP="10.60.10.2/24" -GATEWAY="10.60.10.1" -CORES=1 -MEMORY=512 -SWAP=0 -ROOTFS_SIZE=8 -BRIDGE="xx_vmbrmgt" -MIN_VMID=300 +# Skripte (Name -> URL) +declare -A SCRIPTS +SCRIPTS["Get Host & SSD Serialnumbers"]="https://me-gitea.maieredv.cloud/manuel.maier/pve-pbs-setup/raw/branch/main/get_sn.sh" +SCRIPTS["Setup Mail Notification"]="https://me-gitea.maieredv.cloud/manuel.maier/pve-pbs-setup/raw/branch/main/setup-email.sh" +SCRIPTS["Set CPU Scaling Governor"]="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/pve/scaling-governor.sh" +SCRIPTS["Intel e1000e Offload Fix"]="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/pve/nic-offloading-fix.sh" +SCRIPTS["Set PVE Update Repos"]="https://me-gitea.maieredv.cloud/manuel.maier/pve-pbs-setup/raw/branch/main/set_pve_repos.sh" +SCRIPTS["Set PBS Update Repos"]="https://me-gitea.maieredv.cloud/manuel.maier/pve-pbs-setup/raw/branch/main/set_pbs_repos.sh" +SCRIPTS["Create PVE MGNT Bridge"]="https://me-gitea.maieredv.cloud/manuel.maier/pve-pbs-setup/raw/branch/main/create_pve-mgnt-vmbr.sh" +SCRIPTS["Create PVE MGNT LXC"]="https://me-gitea.maieredv.cloud/manuel.maier/pve-pbs-setup/raw/branch/main/create_pve-mgnt-lxc_v2.sh" +SCRIPTS["Install pcvisit RemoteHost on Windows VMs"]="https://me-gitea.maieredv.cloud/manuel.maier/pve-pbs-setup/raw/branch/main/install-pcvisit-remotehost.sh" -DIALOG=dialog -BACKTITLE="Proxmox VE LXC Installer" -TMPFILE=$(mktemp) +# Reihenfolge festlegen +ORDER=( + "Get Host & SSD Serialnumbers" + "Setup Mail Notification" + "Set CPU Scaling Governor" + "Intel e1000e Offload Fix" + "Set PVE Update Repos" + "Set PBS Update Repos" + "Create PVE MGNT Bridge" + "Create PVE MGNT LXC" + "Install pcvisit RemoteHost on Windows VMs" +) -cleanup() { - rm -f "$TMPFILE" +# Prüfen, ob dialog installiert ist +if ! command -v dialog &>/dev/null; then + echo "Dialog nicht gefunden. Installiere..." + apt update && apt install -y dialog +fi + +# Funktion für Menü +run_menu() { + local OPTIONS=() + local i=1 + for key in "${ORDER[@]}"; do + OPTIONS+=("$i" "$key") + ((i++)) + done + OPTIONS+=("0" "Beenden") + + CHOICE=$(dialog --clear --title "POST-INSTALL TOOLBOX" \ + --menu "Wähle ein Script zum Ausführen:" 20 70 12 \ + "${OPTIONS[@]}" 2>&1 >/dev/tty) + + echo "$CHOICE" } -trap cleanup EXIT -# ---- Root Check ---- -if [[ $EUID -ne 0 ]]; then - echo "Bitte als Root ausführen!" - exit 1 -fi +# Hauptloop +while true; do + CHOICE=$(run_menu) -# ---- Root Passwort ---- -ROOTPASS=$( -$DIALOG --backtitle "$BACKTITLE" \ - --passwordbox "Root-Passwort für den LXC:" 10 60 \ - 2> "$TMPFILE" || exit 1 -cat "$TMPFILE" -) + # Prüfen ob Abbrechen / Exit + if [ -z "$CHOICE" ] || [ "$CHOICE" == "0" ]; then + clear + echo "Bye! 👋" + exit 0 + fi -# ---- Hostname ---- -HOSTNAME="$(hostname)-MGNT" + # Auswahl validieren + if [[ "$CHOICE" =~ ^[0-9]+$ ]] && [ "$CHOICE" -ge 1 ] && [ "$CHOICE" -le ${#ORDER[@]} ]; then + key="${ORDER[$CHOICE-1]}" + url="${SCRIPTS[$key]}" -$DIALOG --backtitle "$BACKTITLE" \ - --msgbox "LXC Hostname:\n\n$HOSTNAME" 8 50 + dialog --infobox "Lade Script:\n$key\nVon: $url" 5 60 + tmpfile=$(mktemp) + curl -sSL "$url" -o "$tmpfile" -# ---- VMID ermitteln ---- -VMID=$MIN_VMID -while pct status "$VMID" &>/dev/null; do - ((VMID++)) + if [ ! -s "$tmpfile" ]; then + dialog --msgbox "Fehler beim Download!" 5 40 + rm -f "$tmpfile" + continue + fi + + # Unter-Script in Subshell ausführen + clear + echo "========================================" + echo "Starte Script: $key" + echo "========================================" + bash "$tmpfile" + rm -f "$tmpfile" + + echo + read -rp "Fertig! Enter drücken für Menü..." _ + else + dialog --msgbox "Ungültige Auswahl! Bitte erneut versuchen." 5 50 + fi done - -# ---- Storage Auswahl ---- -mapfile -t STORAGES < <(pvesm status --content rootdir | awk 'NR>1 {print $1}') - -if [[ ${#STORAGES[@]} -eq 0 ]]; then - $DIALOG --msgbox "Kein geeigneter Storage gefunden!" 8 50 - exit 1 -fi - -MENU_ITEMS=() -for i in "${!STORAGES[@]}"; do - MENU_ITEMS+=("$i" "${STORAGES[$i]}") -done - -STORAGE_INDEX=$( -$DIALOG --backtitle "$BACKTITLE" \ - --menu "Storage für RootFS auswählen:" 15 60 6 \ - "${MENU_ITEMS[@]}" \ - 2> "$TMPFILE" || exit 1 -cat "$TMPFILE" -) - -STORAGE="${STORAGES[$STORAGE_INDEX]}" - -# ---- Template suchen ---- -$DIALOG --infobox "Suche aktuelles Debian 13 Template..." 5 50 -pveam update >/dev/null - -TEMPLATE_NAME=$(pveam available | awk '/debian-13-standard_.*_amd64\.tar\.zst/ {print $2}' | tail -n1) - -if [[ -z "$TEMPLATE_NAME" ]]; then - $DIALOG --msgbox "Kein Debian 13 Template gefunden!" 8 50 - exit 1 -fi - -# ---- Template laden ---- -TEMPLATE_PATH="/var/lib/vz/template/cache/$TEMPLATE_NAME" -if [[ ! -f "$TEMPLATE_PATH" ]]; then - $DIALOG --infobox "Lade Template:\n$TEMPLATE_NAME" 6 60 - pveam download local "$TEMPLATE_NAME" -fi - -# ---- Zusammenfassung ---- -$DIALOG --backtitle "$BACKTITLE" \ - --yesno \ -"Zusammenfassung: - -Hostname: $HOSTNAME -VMID: $VMID -Storage: $STORAGE -IP: $IP -Bridge: $BRIDGE -RAM: ${MEMORY}MB -Cores: $CORES - -LXC jetzt erstellen?" 15 60 - -# ---- LXC erstellen ---- -$DIALOG --infobox "Erstelle unprivilegierten LXC..." 5 50 - -pct create "$VMID" "local:vztmpl/$TEMPLATE_NAME" \ - --hostname "$HOSTNAME" \ - --cores "$CORES" \ - --memory "$MEMORY" \ - --swap "$SWAP" \ - --rootfs "$STORAGE:$ROOTFS_SIZE" \ - --net0 "name=eth0,bridge=$BRIDGE,ip=$IP,gw=$GATEWAY,type=veth" \ - --unprivileged 1 \ - --password "$ROOTPASS" - -# ---- WebUI Konsole ---- -CONF_FILE="/etc/pve/lxc/$VMID.conf" -{ - echo "lxc.tty.max = 2" - echo "lxc.pty.max = 2" - echo "features: nesting=1,keyctl=1" -} >> "$CONF_FILE" - -# ---- Autostart ---- -pct set "$VMID" --onboot 1 - -# ---- Starten ---- -pct start "$VMID" - -# ---- Post-Install ---- -$DIALOG --infobox "Installiere Newt-PVE-MGNT im LXC..." 5 60 - -pct exec "$VMID" -- bash -c " -apt update && -apt install -y curl sudo && -curl -fsSL https://gitea.vmd55888.de/manuel.maier/update-install-newt/raw/branch/main/install_newt_v2.sh -o install_newt_v2.sh && -bash ./install_newt_v2.sh --install -" - -# ---- Fertig ---- -$DIALOG --backtitle "$BACKTITLE" \ - --msgbox \ -"LXC erfolgreich erstellt! - -Name: $HOSTNAME -VMID: $VMID -Autostart: aktiv -Status: gestartet" 10 50