From 5bf6d68f46fea960dcff6d4c8f6d04d30dc4528c Mon Sep 17 00:00:00 2001 From: "manuel.maier" Date: Fri, 23 Jan 2026 23:18:18 +0100 Subject: [PATCH] =?UTF-8?q?create=5FPVE-MGNT-LXC.sh=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- create_PVE-MGNT-LXC.sh | 78 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 create_PVE-MGNT-LXC.sh diff --git a/create_PVE-MGNT-LXC.sh b/create_PVE-MGNT-LXC.sh new file mode 100644 index 0000000..48acae9 --- /dev/null +++ b/create_PVE-MGNT-LXC.sh @@ -0,0 +1,78 @@ +#!/bin/bash +# ===================================================== +# Proxmox VE: Debian 13 LXC automatisch erstellen +# Hostname: -MGNT +# Ohne Root-Passwort +# DNS vom Host übernehmen +# ===================================================== + +# ---- Konfiguration ---- +IP="10.60.10.2/24" +GATEWAY="10.60.10.1" +CORES=1 +MEMORY=512 +SWAP=512 +STORAGE="local-lvm" +ROOTFS_SIZE=8 +BRIDGE="xx_mbrmgt" +MIN_VMID=300 + +# Farben / Layout +BOLD="\033[1m" +GREEN="\033[32m" +CYAN="\033[36m" +RESET="\033[0m" +INDENT=" " + +# ---- Root Check ---- +if [[ $EUID -ne 0 ]]; then + echo -e "${BOLD}${INDENT}Bitte als Root ausführen!${RESET}" + exit 1 +fi + +# ---- Dynamischer Hostname ---- +HOSTNAME="$(hostname)-MGNT" +echo -e "${INDENT}LXC-Hostname wird: $HOSTNAME" + +# ---- Nächste freie VMID ab 300 ---- +VMID=$MIN_VMID +while pct status $VMID &>/dev/null; do + ((VMID++)) +done +echo -e "${INDENT}Nächste freie VMID: $VMID" + +# ---- Template prüfen / herunterladen ---- +TEMPLATE_NAME="debian-13-standard_13.1-2_amd64.tar.zst" +TEMPLATE_PATH="/var/lib/vz/template/cache/$TEMPLATE_NAME" + +if [[ ! -f "$TEMPLATE_PATH" ]]; then + echo -e "${INDENT}Template nicht gefunden, lade herunter..." + pveam update + pveam download local $TEMPLATE_NAME +else + echo -e "${INDENT}Template bereits vorhanden: $TEMPLATE_NAME" +fi + +# ---- Host DNS übernehmen ---- +HOST_DNS=$(grep -E "^nameserver" /etc/resolv.conf | awk '{print $2}' | tr '\n' ',' | sed 's/,$//') +if [[ -z "$HOST_DNS" ]]; then + HOST_DNS="1.1.1.1" # fallback +fi +echo -e "${INDENT}Verwende Host-DNS: $HOST_DNS" + +# ---- LXC erstellen ---- +echo -e "${INDENT}Erstelle LXC $HOSTNAME (VMID: $VMID)..." +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 \ + --nameserver "$HOST_DNS" + +# ---- Container starten ---- +echo -e "${INDENT}Starte LXC..." +pct start $VMID + +echo -e "${GREEN}${INDENT}✔ LXC $HOSTNAME (VMID $VMID) erstellt und gestartet!${RESET}"