set_repos.sh aktualisiert
This commit is contained in:
133
set_repos.sh
133
set_repos.sh
@@ -1,84 +1,87 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
# =====================================================
|
||||||
|
# Proxmox VE 9 Repository Setup (No-Subscription)
|
||||||
|
# Debian 13 (trixie) | deb822 (.sources)
|
||||||
|
# =====================================================
|
||||||
|
|
||||||
# ==========================================
|
# Farben / Layout
|
||||||
# PVE & Ceph Repo Switch: Enterprise → No-Subscription
|
BOLD="\033[1m"
|
||||||
# Dynamisch für PVE8/PVE9 & Ceph-Version
|
|
||||||
# ==========================================
|
|
||||||
|
|
||||||
# Farben
|
|
||||||
RED="\033[31m"
|
|
||||||
GREEN="\033[32m"
|
GREEN="\033[32m"
|
||||||
YELLOW="\033[33m"
|
YELLOW="\033[33m"
|
||||||
|
RED="\033[31m"
|
||||||
CYAN="\033[36m"
|
CYAN="\033[36m"
|
||||||
BOLD="\033[1m"
|
|
||||||
RESET="\033[0m"
|
RESET="\033[0m"
|
||||||
INDENT=" "
|
INDENT=" "
|
||||||
|
|
||||||
# Prüfen ob Root
|
# Root-Check
|
||||||
if [ "$EUID" -ne 0 ]; then
|
if [[ $EUID -ne 0 ]]; then
|
||||||
echo -e "${RED}${INDENT}Bitte als Root ausführen (sudo)${RESET}"
|
echo -e "${RED}${INDENT}Bitte als Root ausführen!${RESET}"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# PVE Version auslesen
|
echo -e "${BOLD}${CYAN}"
|
||||||
PVE_VER=$(pveversion -v | head -n1 | awk '{print $2}' | cut -d'-' -f1)
|
echo -e "${INDENT}=============================================="
|
||||||
echo -e "${CYAN}${INDENT}Erkannte PVE Version: $PVE_VER${RESET}"
|
echo -e "${INDENT} Proxmox VE 9 – Repository Setup"
|
||||||
|
echo -e "${INDENT} No-Subscription | deb822 Standard"
|
||||||
|
echo -e "${INDENT}=============================================="
|
||||||
|
echo -e "${RESET}"
|
||||||
|
|
||||||
# Debian Codename dynamisch setzen
|
# OS prüfen
|
||||||
if [[ "$PVE_VER" =~ ^9 ]]; then
|
if ! grep -q "trixie" /etc/os-release; then
|
||||||
DEB_CODENAME="trixie"
|
echo -e "${RED}${INDENT}Dieses Script ist NUR für Debian 13 (trixie)!${RESET}"
|
||||||
elif [[ "$PVE_VER" =~ ^8 ]]; then
|
exit 1
|
||||||
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
|
fi
|
||||||
|
|
||||||
# Ceph Repo dynamisch erkennen und anpassen
|
# Backup-Ordner
|
||||||
# Wir suchen nach Zeilen mit "ceph" in sources.list
|
BACKUP_DIR="/root/repo-backup-$(date +%F-%H%M)"
|
||||||
CEPH_LINE=$(grep -E "^deb .+ceph" /etc/apt/sources.list | head -n1)
|
mkdir -p "$BACKUP_DIR"
|
||||||
if [ -n "$CEPH_LINE" ]; then
|
|
||||||
# Extrahiere die Ceph-Version (z.B. ceph-squid, ceph-pacific)
|
echo -e "${CYAN}${INDENT}==> Backup vorhandener Repo-Dateien...${RESET}"
|
||||||
CEPH_VER=$(echo "$CEPH_LINE" | awk '{print $3}')
|
mv /etc/apt/sources.list.d/*.list "$BACKUP_DIR/" 2>/dev/null
|
||||||
CEPH_REPO="deb http://download.proxmox.com/debian/ceph-$CEPH_VER $DEB_CODENAME main"
|
mv /etc/apt/sources.list.d/*.sources "$BACKUP_DIR/" 2>/dev/null
|
||||||
# Alte Ceph Zeilen auskommentieren
|
[ -f /etc/apt/sources.list ] && mv /etc/apt/sources.list "$BACKUP_DIR/"
|
||||||
sed -i '/^deb .*ceph/ s|^deb|# deb|' /etc/apt/sources.list
|
|
||||||
# Prüfen ob schon vorhanden
|
echo -e "${GREEN}${INDENT}Backup erstellt unter: $BACKUP_DIR${RESET}"
|
||||||
if ! grep -q "ceph-$CEPH_VER" /etc/apt/sources.list; then
|
|
||||||
echo -e "${CYAN}${INDENT}==> No-Subscription Ceph Repo hinzufügen...${RESET}"
|
# Proxmox Keyring prüfen
|
||||||
echo "$CEPH_REPO" >> /etc/apt/sources.list
|
KEYRING="/usr/share/keyrings/proxmox-archive-keyring.gpg"
|
||||||
echo -e "${GREEN}${INDENT}Ceph No-Subscription Repo hinzugefügt: $CEPH_REPO${RESET}"
|
if [[ ! -f "$KEYRING" ]]; then
|
||||||
else
|
echo -e "${CYAN}${INDENT}==> Proxmox Keyring fehlt – installiere...${RESET}"
|
||||||
echo -e "${YELLOW}${INDENT}Ceph No-Subscription Repo bereits vorhanden, übersprungen.${RESET}"
|
apt update >/dev/null
|
||||||
|
apt install -y proxmox-archive-keyring
|
||||||
fi
|
fi
|
||||||
else
|
|
||||||
echo -e "${YELLOW}${INDENT}Keine Ceph Repos gefunden, übersprungen.${RESET}"
|
# Ceph Version dynamisch bestimmen
|
||||||
|
CEPH_CODENAME="squid"
|
||||||
|
if command -v ceph >/dev/null 2>&1; then
|
||||||
|
CEPH_CODENAME=$(ceph -v | awk '{print $3}' | cut -d. -f1)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
echo -e "${CYAN}${INDENT}==> Erkannte Ceph-Version: ${CEPH_CODENAME}${RESET}"
|
||||||
|
|
||||||
|
# PVE Repo
|
||||||
|
echo -e "${CYAN}${INDENT}==> Erstelle PVE No-Subscription Repo...${RESET}"
|
||||||
|
cat <<EOF > /etc/apt/sources.list.d/pve-no-subscription.sources
|
||||||
|
Types: deb
|
||||||
|
URIs: http://download.proxmox.com/debian/pve
|
||||||
|
Suites: trixie
|
||||||
|
Components: pve-no-subscription
|
||||||
|
Signed-By: ${KEYRING}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Ceph Repo
|
||||||
|
echo -e "${CYAN}${INDENT}==> Erstelle Ceph No-Subscription Repo...${RESET}"
|
||||||
|
cat <<EOF > /etc/apt/sources.list.d/ceph-no-subscription.sources
|
||||||
|
Types: deb
|
||||||
|
URIs: http://download.proxmox.com/debian/ceph-${CEPH_CODENAME}
|
||||||
|
Suites: trixie
|
||||||
|
Components: main
|
||||||
|
Signed-By: ${KEYRING}
|
||||||
|
EOF
|
||||||
|
|
||||||
# APT Update
|
# APT Update
|
||||||
echo -e "${CYAN}${INDENT}==> APT Update durchführen...${RESET}"
|
echo -e "${CYAN}${INDENT}==> APT Update...${RESET}"
|
||||||
apt update -y
|
apt update
|
||||||
|
|
||||||
echo -e "${GREEN}${INDENT}Fertig! Dein Proxmox nutzt jetzt No-Subscription Repos für PVE & Ceph.${RESET}"
|
echo -e "${GREEN}${INDENT}✔ Repositories erfolgreich eingerichtet!${RESET}"
|
||||||
echo -e "${CYAN}${INDENT}Backup der alten sources.list ist unter /etc/apt/sources.list.bakYYYY-MM-DD-HHMM verfügbar.${RESET}"
|
echo -e "${CYAN}${INDENT}PVE 9 + Ceph (${CEPH_CODENAME}) nutzen jetzt No-Subscription.${RESET}"
|
||||||
Reference in New Issue
Block a user