#!/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}"