#!/bin/bash
### Farbdefinitionen 
#### TEXT in Weis
# DATEIEN in Gelb
# ORDNER in HellBlau
########################
# Farbdefinitionen zur Ausgabe 
ROT='\033[0;31m'
HELLROT='\033[1;31m'
GRUEN='\033[0;32m'
HELLGRUEN='\033[1;32m'
GELB='\033[1;33m'
BLAU='\033[0;34m'
HELLBLAU='\033[1;34m'
LILA='\033[0;35m'
HELLLILA='\033[1;35m'
DUNKELESTUERKIS='\033[0;36m'
TUERKIS='\033[1;36m'
HELLGRAU='\033[0;37m'
WEISS='\033[1;37m'
NC='\033[0m' # No Color
#
########################################
# Das zu installierende Template holen #
########################################
#
echo
echo -e -n "${WEISS}Download der Datei:${GELB}debian-12-standard_12.2-1_amd64.tar.zst ${WEISS}und Verschieben in den Ordner ${HELLBLAU}/var/lib/vz/template/cache ${NC}"
echo
echo
wget http://download.proxmox.com/images/system/debian-12-standard_12.2-1_amd64.tar.zst && mv debian-12-standard_12.2-1_amd64.tar.zst /var/lib/vz/template/cache
echo
echo -e -n "${WEISS}Dowmload des Templates und Verschieben fertig ${NC}"
echo
#
############################
## LXC-Container erstellen #
############################
#
echo
echo -e -n "${WEISS}Erstellen des Apache Guacamole LXC-Containers ${NC}"
echo
##
## [Variablen]
##
#
NODE="" 								# Name der Proxmoxnode, auf dem Apache Guacamole betrieben wird
LXC_TEMPLATE=""							# Pfad zum LCX Template auf dem o.g. Proxmox
IPSNM=""								# Der Container erhoelt per Default per dhcp seine IP - kann aber auch im Script uebergeben werden
GATEWAY=""								# Gateway in dem Netzwerk
VSWITCH=""								# virtueller Switch in dem Netzwerk des Apache Guacamole
ROOTPWD=""								# Das root Passwort wird bei der Eingabe nicht angezeigt!!
FQDN=""									# Der Name des LXC-Containers
PROMPT=""								# PROMPT Schreibeingabe
VMID=""									# virtuelle LXC-Contaner Nummer
TEMPLATE=:vztmpl/debian-12-standard_12.2-1_amd64.tar.zst
PFAD=""									
#
##
## [Argumente auslesen]
##
#
if [ -z "${NODE}" ]; then
    # Die Proxmox Note angeben
      read -p "Die Proxmoxnote angeben z.B.pve: " NODE
fi
if [ -z "${PFAD}" ]; then
    # Die Proxmox Note angeben
      read -p "Speicherort des Templates z.B.local: " PFAD
fi
if [ -z "${VMID}" ]; then
    # LXC-Container VIMD Nummer
        read -p "Enter LXC-Container VIMD Nummer: " VMID
fi
if [ -z "${FQDN}" ]; then
    # LXC-Container Name
        read -p "Enter LXC-Container Name z.B LXDE-XRDP: " FQDN
fi
if [ -z "${VSWITCH}" ]; then
    # LXC-Container IP/Submask
        read -p "Enter LXC-Container VSWITCH z.B.vmbr0: " VSWITCH
fi
if [ -z "${IPSNM}" ]; then
    # LXC-Container IP/Submask
        read -p "Enter LXC-Container IP/Submask z.B. 10.1.0.8/24: " IPSNM
fi
if [ -z "${GATEWAY}" ]; then
    # LXC-Container IP/Submask
        read -p "Enter LXC-Container GATEWAY z.B. 10.1.0.1: " GATEWAY
fi
if [ -z "${ROOTPWD}" ]; then
    # Get "Root"  password
      read -p "ACHTUNG root Passwort wird ANGEZEIGT!!: " ROOTPWD
fi
#
echo -e "${HELLGRUEN}LXC-Container "
echo -e "${HELLGRUEN}Der Notename ist ${WEISS}$NODE "
echo -e "${HELLGRUEN}Die VMID ist ${WEISS}$VMID "
echo -e "${HELLGRUEN}Der Namen ist ${WEISS}$FQDN "
echo -e "${HELLGRUEN}Die Linux Bridge ist ${WEISS}$VSWITCH "
echo -e "${HELLGRUEN}Die IP4/Submask ist ${WEISS}$IPSNM "
echo -e "${HELLGRUEN}Der GATEWAY ist ${WEISS}$GATEWAY "
echo -e "${HELLGRUEN}Das root Passwort ist ${WEISS}$ROOTPWD "
echo -e "${HELLGRUEN}wird erstellt!"
echo -e -n "${NC}"
echo
#
##
## [LCX-Container]
##
#
# Ggf. Koennen hier noch Anpassungen zum verwendeten Storage, Speicher, CPU etc. gemacht werden.
#
LXC_TEMPLATE=$PFAD$TEMPLATE
pct create $VMID \
$LXC_TEMPLATE \
--hostname $FQDN \
--memory 2048 \
--cores 1 \
--net0 name=eth0,bridge=$VSWITCH,firewall=1,gw=$GATEWAY,ip=$IPSNM \
--storage local \
--rootfs local:4 \
--unprivileged 1 \
--ignore-unpack-errors  \
--ostype debian \
--password=$ROOTPWD \
--start 1
# more options:
# --ssh-public-keys /root/.ssh/authorized_keys
# --onboot 1
# --cpuunits $cpuunits
# --net name=eth0,ip4=dhcp
# Zeit einplanen, falls der DHCP oder andere Prozesse diese brauchen.
sleep 10
##
## [SoftwareDownload]
##
pct exec $VMID -- tee -a /etc/locale.gen <<EOF
 de_DE.UTF-8 UTF-8
EOF
pct exec $VMID -- locale-gen
# Zur Sicherheit die Variablen derr Locales nochmal temporoer in dem Proxmoxterminal setzen.
export LANGUAGE=de_DE.UTF-8
export LANG=de_DE.UTF-8
export LC_ALL=de_DE.UTF-8
pct exec $VMID -- locale
#
pct exec $VMID -- apt update && apt upgrade -y
pct exec $VMID -- apt autoremove -y
# Jenach Anwendung oder Bedarf benoetigt man nicht alle Softwarepakete.
echo
echo -e "${WEISS}Um den LXDE-Desktop zu installieren geben wir den Befehl ${GELB}tsksel ${NC}"
echo
pct exec $VMID -- apt install lxde task-lxde-desktop mc -y
pct exec $VMID -- apt install xrdp -y
pct exec $VMID -- systemctl status xrdp --no-pager
pct exec $VMID -- ./sbin/adduser xrdp ssl-cert
pct exec $VMID -- systemctl restart xrdp
pct exec $VMID -- systemctl status xrdp --no--pager
echo
echo -e "${WEISS}###################### FERTIG ####################################"