From 88e2e15ceb75dab63c778cb972aaf83bcf1df19c Mon Sep 17 00:00:00 2001 From: "manuel.maier" Date: Fri, 23 Jan 2026 18:00:54 +0100 Subject: [PATCH] =?UTF-8?q?set=5Frepos.sh=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- set_repos.sh | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 set_repos.sh diff --git a/set_repos.sh b/set_repos.sh new file mode 100644 index 0000000..1217206 --- /dev/null +++ b/set_repos.sh @@ -0,0 +1,84 @@ +#!/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}"