#!/bin/bash # ========================================== # PVE & Ceph Repo Switch: Enterprise → No-Subscription # Dynamisch für PVE8/PVE9 & Ceph-Version # ========================================== # Farben RED="\033[31m" GREEN="\033[32m" YELLOW="\033[33m" CYAN="\033[36m" BOLD="\033[1m" RESET="\033[0m" INDENT=" " # Prüfen ob Root if [ "$EUID" -ne 0 ]; then echo -e "${RED}${INDENT}Bitte als Root ausführen (sudo)${RESET}" exit 1 fi # PVE Version auslesen PVE_VER=$(pveversion -v | head -n1 | awk '{print $2}' | cut -d'-' -f1) echo -e "${CYAN}${INDENT}Erkannte PVE Version: $PVE_VER${RESET}" # Debian Codename dynamisch setzen if [[ "$PVE_VER" =~ ^9 ]]; then DEB_CODENAME="trixie" elif [[ "$PVE_VER" =~ ^8 ]]; then DEB_CODENAME="bookworm" else echo -e "${YELLOW}${INDENT}Unbekannte PVE-Version, Standard auf bookworm${RESET}" DEB_CODENAME="bookworm" fi echo -e "${CYAN}${INDENT}Debian Codename: $DEB_CODENAME${RESET}" # Backup echo -e "${CYAN}${INDENT}==> Backup der aktuellen sources.list erstellen...${RESET}" cp /etc/apt/sources.list /etc/apt/sources.list.bak.$(date +%F-%H%M) echo -e "${GREEN}${INDENT}Backup erstellt: /etc/apt/sources.list.bak.$(date +%F-%H%M)${RESET}" # Enterprise Repos deaktivieren echo -e "${CYAN}${INDENT}==> Enterprise Repos deaktivieren...${RESET}" sed -i 's|^deb https://enterprise.proxmox.com/debian/pve|# deb https://enterprise.proxmox.com/debian/pve|' /etc/apt/sources.list sed -i 's|^deb https://enterprise.proxmox.com/debian/ceph|# deb https://enterprise.proxmox.com/debian/ceph|' /etc/apt/sources.list # PVE No-Subscription Repo PVE_NO_SUB="deb http://download.proxmox.com/debian/pve $DEB_CODENAME pve-no-subscription" if ! grep -q "pve-no-subscription" /etc/apt/sources.list; then echo -e "${CYAN}${INDENT}==> No-Subscription PVE Repo hinzufügen...${RESET}" echo "$PVE_NO_SUB" >> /etc/apt/sources.list echo -e "${GREEN}${INDENT}PVE No-Subscription Repo hinzugefügt: $PVE_NO_SUB${RESET}" else echo -e "${YELLOW}${INDENT}PVE No-Subscription Repo bereits vorhanden, übersprungen.${RESET}" fi # Ceph Repo dynamisch erkennen und anpassen # Wir suchen nach Zeilen mit "ceph" in sources.list CEPH_LINE=$(grep -E "^deb .+ceph" /etc/apt/sources.list | head -n1) if [ -n "$CEPH_LINE" ]; then # Extrahiere die Ceph-Version (z.B. ceph-squid, ceph-pacific) CEPH_VER=$(echo "$CEPH_LINE" | awk '{print $3}') CEPH_REPO="deb http://download.proxmox.com/debian/ceph-$CEPH_VER $DEB_CODENAME main" # Alte Ceph Zeilen auskommentieren sed -i '/^deb .*ceph/ s|^deb|# deb|' /etc/apt/sources.list # Prüfen ob schon vorhanden if ! grep -q "ceph-$CEPH_VER" /etc/apt/sources.list; then echo -e "${CYAN}${INDENT}==> No-Subscription Ceph Repo hinzufügen...${RESET}" echo "$CEPH_REPO" >> /etc/apt/sources.list echo -e "${GREEN}${INDENT}Ceph No-Subscription Repo hinzugefügt: $CEPH_REPO${RESET}" else echo -e "${YELLOW}${INDENT}Ceph No-Subscription Repo bereits vorhanden, übersprungen.${RESET}" fi else echo -e "${YELLOW}${INDENT}Keine Ceph Repos gefunden, übersprungen.${RESET}" fi # APT Update echo -e "${CYAN}${INDENT}==> APT Update durchführen...${RESET}" apt update -y echo -e "${GREEN}${INDENT}Fertig! Dein Proxmox nutzt jetzt No-Subscription Repos für PVE & Ceph.${RESET}" echo -e "${CYAN}${INDENT}Backup der alten sources.list ist unter /etc/apt/sources.list.bakYYYY-MM-DD-HHMM verfügbar.${RESET}"