Files
pve-pbs-setup/post_install.sh

109 lines
3.3 KiB
Bash

#!/bin/bash
# =================================
# POST-INSTALL TOOLBOX
# =================================
# Farben
RED="\033[31m"
GREEN="\033[32m"
YELLOW="\033[33m"
BLUE="\033[34m"
CYAN="\033[36m"
BOLD="\033[1m"
RESET="\033[0m"
# Einrückung vom linken Rand
INDENT=" " # 6 Leerzeichen
# Prüfen, ob Root
if [ "$EUID" -ne 0 ]; then
echo -e "${RED}Bitte als Root ausführen (sudo)${RESET}"
exit 1
fi
# Skripte (Name -> URL)
declare -A SCRIPTS
SCRIPTS["Host & SSD Seriennummern"]="https://gitea.vmd55888.de/manuel.maier/pve-pbs-setup/raw/branch/main/get_sn.sh"
SCRIPTS["Set PVE-Mail"]="https://gitea.vmd55888.de/manuel.maier/pve-pbs-setup/raw/branch/main/setup-email-pve.sh"
SCRIPTS["Set PBS-Mail"]="https://gitea.vmd55888.de/manuel.maier/pve-pbs-setup/raw/branch/main/setup-email-pbs.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://gitea.vmd55888.de/manuel.maier/pve-pbs-setup/raw/branch/main/set_repos.sh"
# Reihenfolge festlegen
ORDER=(
"Host & SSD Seriennummern"
"Set PVE-Mail"
"Set PBS-Mail"
"Set CPU Scaling Governor"
"Intel e1000e Offload Fix"
"Set PVE Update Repos"
)
# Funktion für Header
print_header() {
clear
echo -e "${CYAN}${BOLD}${INDENT}====================================${RESET}"
echo -e "${CYAN}${BOLD}${INDENT} POST-INSTALL TOOLBOX ${RESET}"
echo -e "${CYAN}${BOLD}${INDENT}====================================${RESET}"
}
# Menü starten
while true; do
print_header
echo -e "\n${YELLOW}${INDENT}Wähle ein Script zum Ausführen:${RESET}\n"
# Skripte nummerieren in der festen Reihenfolge
i=1
declare -A INDEX_MAP
for key in "${ORDER[@]}"; do
echo -e "${INDENT}${RED}$i)${RESET} $key"
INDEX_MAP[$i]="$key"
((i++))
done
echo -e "${INDENT}${RED}0) Beenden${RESET}\n"
echo -ne "${INDENT}Auswahl: "
read -r choice
# Beenden
if [ "$choice" == "0" ]; then
echo -e "${GREEN}${INDENT}Bye! 👋${RESET}"
exit 0
fi
# Prüfen ob gültig
if [[ "$choice" =~ ^[0-9]+$ ]] && [ "$choice" -ge 1 ] && [ "$choice" -lt "$i" ]; then
key="${INDEX_MAP[$choice]}"
url="${SCRIPTS[$key]}"
echo -e "\n${CYAN}${INDENT}------------------------------------${RESET}"
echo -e "${GREEN}${INDENT}Lade Script: ${BOLD}$key${RESET}"
echo -e "${YELLOW}${INDENT}Von: $url${RESET}"
echo -e "${CYAN}${INDENT}------------------------------------${RESET}\n"
# Temporäre Datei
tmpfile=$(mktemp)
curl -sSL "$url" -o "$tmpfile"
if [ ! -s "$tmpfile" ]; then
echo -e "${RED}${INDENT}Fehler beim Download!${RESET}"
rm -f "$tmpfile"
read -r -p "${INDENT}Enter drücken für Menü..."
continue
fi
# Script ausführen
bash "$tmpfile"
rm -f "$tmpfile"
echo -e "\n${CYAN}${INDENT}------------------------------------${RESET}"
echo -e "${GREEN}${INDENT}Fertig!${RESET} Drücke Enter für Menü..."
read -r
else
echo -e "${RED}${INDENT}Ungültige Auswahl! Bitte erneut versuchen.${RESET}"
sleep 1
fi
done