ProxmoxVE/vm/debian-vm.sh
oOStroudyOo 53ed69e090 Squashed commit of the following:
commit 995fa24aaffa98b8e12e8ebe084cbce61f605995
Author: oOStroudyOo <111181956+oOStroudyOo@users.noreply.github.com>
Date:   Mon Dec 23 14:41:35 2024 +0000

    Improve motd

    Added gold colour.
    Added TABS (A longer version of TAB for central heading / Reduced code).
    Added building icon.
    Added hammer and spanner icon (GitHub).
    Change LXC Container title to more central location and in gold.
    Added website URL.
    Split the lines to show Org, Website and GitHub on separate lines.
    Change Org icon to building.
    Added the hammer and spanner emoji to GitHub line.
    Changed IP icon from idea to network.
    Added line break under the title for better readability.
    Added line break under the IP address for better readability.

commit 0d18fb33ce
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Sun Dec 22 10:45:03 2024 +0100

    Update navidrome-install.sh

commit 003f7c3ab4
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Sun Dec 22 10:42:47 2024 +0100

    Update navidrome.sh

commit 525362f3c5
Author: Michel Roegl-Brunner <michel.roegl-brunner@htl-braunau.at>
Date:   Fri Dec 20 09:20:20 2024 +0100

    Changes

commit 9e6770f03b
Author: Michel Roegl-Brunner <michel.roegl-brunner@htl-braunau.at>
Date:   Fri Dec 20 09:14:04 2024 +0100

    Change to dpkg -i

commit 775ed987db
Author: Michel Roegl-Brunner <michel.roegl-brunner@htl-braunau.at>
Date:   Thu Dec 19 15:33:28 2024 +0100

    New Script: CheckMk

commit 8950eb302e
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Thu Dec 19 09:48:05 2024 +0100

    Update apache-guacamole-install.sh

commit 3ac7c9093b
Merge: 9ae03880 75772753
Author: Michel Roegl-Brunner <michel.roegl-brunner@htl-braunau.at>
Date:   Thu Dec 19 09:28:30 2024 +0100

    Merge branch 'develop' of https://github.com/community-scripts/ProxmoxVE into develop

commit 9ae03880a4
Author: Michel Roegl-Brunner <michel.roegl-brunner@htl-braunau.at>
Date:   Thu Dec 19 09:28:13 2024 +0100

    Update Bookstack for testing

commit 757727537b
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Wed Dec 18 16:37:01 2024 +0100

    Update apache-guacamole-install.sh

commit 7e2b1fd87f
Author: Michel Roegl-Brunner <michel.roegl-brunner@htl-braunau.at>
Date:   Wed Dec 18 15:05:32 2024 +0100

    Suppres output

commit c00c17290e
Author: Michel Roegl-Brunner <michel.roegl-brunner@htl-braunau.at>
Date:   Wed Dec 18 14:10:01 2024 +0100

    Update zammad-install.sh

commit 66fafe2b10
Author: Michel Roegl-Brunner <michel.roegl-brunner@htl-braunau.at>
Date:   Wed Dec 18 14:00:00 2024 +0100

    Update zammad-install.sh

commit c85462809d
Author: Michel Roegl-Brunner <michel.roegl-brunner@htl-braunau.at>
Date:   Wed Dec 18 13:56:31 2024 +0100

    Update zammad-install.sh

commit 887c70c35a
Author: Michel Roegl-Brunner <michel.roegl-brunner@htl-braunau.at>
Date:   Wed Dec 18 13:47:11 2024 +0100

    Update zammad-install.sh

commit d87f3f777b
Author: Michel Roegl-Brunner <michel.roegl-brunner@htl-braunau.at>
Date:   Wed Dec 18 13:05:49 2024 +0100

    Push Zammad and Apache Guacamole

commit ef3bb43405
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Wed Dec 18 12:30:24 2024 +0100

    fix paths to tmp

commit b6104103cb
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Wed Dec 18 10:21:29 2024 +0100

    Update build.func

commit fbb1b7d88a
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Wed Dec 18 10:12:32 2024 +0100

    Update authentik.sh

commit daba45f93a
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Wed Dec 18 10:07:28 2024 +0100

    Add files via upload

commit a13c0617b2
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Wed Dec 18 10:07:02 2024 +0100

    Update authentik.sh

commit 934f989f10
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Wed Dec 18 10:03:12 2024 +0100

    Update authentik.sh

commit c1b2476a30
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Wed Dec 18 10:02:52 2024 +0100

    Add files via upload

commit b7e00c4885
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Fri Dec 13 11:42:19 2024 +0100

    dev

commit daf650be1f
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Fri Dec 13 11:40:40 2024 +0100

    test

commit 5a3dca218e
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Tue Dec 10 14:41:59 2024 +0100

    Update alpine-vaultwarden-install.sh

commit b4c59c7044
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Tue Dec 10 09:44:54 2024 +0100

    Update nginxproxymanager.sh

commit 9ef229b90a
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Tue Dec 10 09:29:21 2024 +0100

    Update nginxproxymanager-install.sh

commit e6361570b3
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Tue Dec 10 09:23:56 2024 +0100

    Update keycloak.sh

commit f901cd55dd
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 13:16:27 2024 +0100

    Update build.func

commit 02a0d16bee
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 13:14:36 2024 +0100

    Update build.func

commit e30f96e038
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 11:26:35 2024 +0100

    switch *arr to arr

commit 90246d1537
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 10:38:14 2024 +0100

    add space option

commit 693ad497f6
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 10:35:19 2024 +0100

    update motd for OS_version/name

commit 107243d576
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 10:34:15 2024 +0100

    remove project in motd

commit e65593751c
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 10:32:15 2024 +0100

    noCancel

commit 7fc60c9039
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 10:23:24 2024 +0100

    switch nocancel

commit ef837ab8b9
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 10:21:25 2024 +0100

    Update build.func

commit 37b398a5c9
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 10:20:24 2024 +0100

    Update build.func

commit 6ea43228c4
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 10:16:10 2024 +0100

    Update build.func

commit 8d89c107f9
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 10:08:57 2024 +0100

    Update build.func

commit 6e90b44e7e
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 10:08:47 2024 +0100

    Update build.func

commit 4c2965f850
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 10:06:34 2024 +0100

    Update build.func

commit 29209dbee6
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 09:57:47 2024 +0100

    Update build.func

commit 63be70cc25
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 09:50:49 2024 +0100

    Update build.func

commit 02ded1ee47
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 09:46:39 2024 +0100

    Update build.func

commit b42d5c6a57
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 09:41:04 2024 +0100

    Update build.func

commit 9e90ab1921
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 09:39:16 2024 +0100

    Update build.func

commit 03301f12d2
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 09:36:00 2024 +0100

    Update build.func

commit d10c404b60
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 09:24:57 2024 +0100

    Update create_lxc.sh

commit b72eb02fde
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 09:19:32 2024 +0100

    space for spinner

commit 542c4f703b
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 09:11:02 2024 +0100

    Update install.func

commit 0f914e5ad7
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 09:06:49 2024 +0100

    TAGS > var_tags

commit d270b5535d
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 08:59:15 2024 +0100

    fix space in spinner

commit ffca06575e
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 08:58:22 2024 +0100

    fix space in  spinner

commit d73c19f5cd
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Sat Dec 7 22:10:22 2024 +0100

    Fix Ressource-Check for other languages

commit f107a60062
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Sat Dec 7 11:41:13 2024 +0100

    netbox HTTPS instead http

commit f6604e09d4
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Fri Dec 6 15:31:00 2024 +0100

    fix for dev branch

commit 8063b68434
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Fri Dec 6 15:28:44 2024 +0100

    Update install.func

commit c0ff715175
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Fri Dec 6 15:28:19 2024 +0100

    Update create_lxc.sh

commit ae614234df
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Fri Dec 6 15:26:57 2024 +0100

    prepare for develop branch

commit 0141f3fc86
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Fri Dec 6 15:24:05 2024 +0100

    Update build.func

commit 6d390bbd78
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Fri Dec 6 15:19:58 2024 +0100

    Full Update
2024-12-23 15:14:53 +00:00

427 lines
13 KiB
Bash

#!/usr/bin/env bash
# Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster)
# License: MIT
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
function header_info {
clear
cat <<"EOF"
____ __ _ ______
/ __ \___ / /_ (_)___ _____ < /__ \
/ / / / _ \/ __ \/ / __ `/ __ \ / /__/ /
/ /_/ / __/ /_/ / / /_/ / / / / / // __/
/_____/\___/_.___/_/\__,_/_/ /_/ /_//____/
EOF
}
header_info
echo -e "\n Loading..."
GEN_MAC=02:$(openssl rand -hex 5 | awk '{print toupper($0)}' | sed 's/\(..\)/\1:/g; s/.$//')
NEXTID=$(pvesh get /cluster/nextid)
YW=$(echo "\033[33m")
BL=$(echo "\033[36m")
HA=$(echo "\033[1;34m")
RD=$(echo "\033[01;31m")
BGN=$(echo "\033[4;92m")
GN=$(echo "\033[1;92m")
DGN=$(echo "\033[32m")
CL=$(echo "\033[m")
BFR="\\r\\033[K"
HOLD="-"
CM="${GN}${CL}"
CROSS="${RD}${CL}"
THIN="discard=on,ssd=1,"
set -e
trap 'error_handler $LINENO "$BASH_COMMAND"' ERR
trap cleanup EXIT
function error_handler() {
local exit_code="$?"
local line_number="$1"
local command="$2"
local error_message="${RD}[ERROR]${CL} in line ${RD}$line_number${CL}: exit code ${RD}$exit_code${CL}: while executing command ${YW}$command${CL}"
echo -e "\n$error_message\n"
cleanup_vmid
}
function cleanup_vmid() {
if qm status $VMID &>/dev/null; then
qm stop $VMID &>/dev/null
qm destroy $VMID &>/dev/null
fi
}
function cleanup() {
popd >/dev/null
rm -rf $TEMP_DIR
}
TEMP_DIR=$(mktemp -d)
pushd $TEMP_DIR >/dev/null
if whiptail --backtitle "Proxmox VE Helper Scripts" --title "Debian 12 VM" --yesno "This will create a New Debian 12 VM. Proceed?" 10 58; then
:
else
header_info && echo -e "⚠ User exited script \n" && exit
fi
function msg_info() {
local msg="$1"
echo -ne " ${HOLD} ${YW}${msg}..."
}
function msg_ok() {
local msg="$1"
echo -e "${BFR} ${CM} ${GN}${msg}${CL}"
}
function msg_error() {
local msg="$1"
echo -e "${BFR} ${CROSS} ${RD}${msg}${CL}"
}
function check_root() {
if [[ "$(id -u)" -ne 0 || $(ps -o comm= -p $PPID) == "sudo" ]]; then
clear
msg_error "Please run this script as root."
echo -e "\nExiting..."
sleep 2
exit
fi
}
function pve_check() {
if ! pveversion | grep -Eq "pve-manager/8.[1-3]"; then
msg_error "This version of Proxmox Virtual Environment is not supported"
echo -e "Requires Proxmox Virtual Environment Version 8.1 or later."
echo -e "Exiting..."
sleep 2
exit
fi
}
function arch_check() {
if [ "$(dpkg --print-architecture)" != "amd64" ]; then
msg_error "This script will not work with PiMox! \n"
echo -e "Exiting..."
sleep 2
exit
fi
}
function ssh_check() {
if command -v pveversion >/dev/null 2>&1; then
if [ -n "${SSH_CLIENT:+x}" ]; then
if whiptail --backtitle "Proxmox VE Helper Scripts" --defaultno --title "SSH DETECTED" --yesno "It's suggested to use the Proxmox shell instead of SSH, since SSH can create issues while gathering variables. Would you like to proceed with using SSH?" 10 62; then
echo "you've been warned"
else
clear
exit
fi
fi
fi
}
function exit-script() {
clear
echo -e "⚠ User exited script \n"
exit
}
function default_settings() {
VMID="$NEXTID"
FORMAT=",efitype=4m"
MACHINE=""
DISK_CACHE=""
HN="debian"
CPU_TYPE=""
CORE_COUNT="2"
RAM_SIZE="2048"
BRG="vmbr0"
MAC="$GEN_MAC"
VLAN=""
MTU=""
START_VM="yes"
echo -e "${DGN}Using Virtual Machine ID: ${BGN}${VMID}${CL}"
echo -e "${DGN}Using Machine Type: ${BGN}i440fx${CL}"
echo -e "${DGN}Using Disk Cache: ${BGN}None${CL}"
echo -e "${DGN}Using Hostname: ${BGN}${HN}${CL}"
echo -e "${DGN}Using CPU Model: ${BGN}KVM64${CL}"
echo -e "${DGN}Allocated Cores: ${BGN}${CORE_COUNT}${CL}"
echo -e "${DGN}Allocated RAM: ${BGN}${RAM_SIZE}${CL}"
echo -e "${DGN}Using Bridge: ${BGN}${BRG}${CL}"
echo -e "${DGN}Using MAC Address: ${BGN}${MAC}${CL}"
echo -e "${DGN}Using VLAN: ${BGN}Default${CL}"
echo -e "${DGN}Using Interface MTU Size: ${BGN}Default${CL}"
echo -e "${DGN}Start VM when completed: ${BGN}yes${CL}"
echo -e "${BL}Creating a Debian 12 VM using the above default settings${CL}"
}
function advanced_settings() {
while true; do
if VMID=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set Virtual Machine ID" 8 58 $NEXTID --title "VIRTUAL MACHINE ID" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then
if [ -z "$VMID" ]; then
VMID="$NEXTID"
fi
if pct status "$VMID" &>/dev/null || qm status "$VMID" &>/dev/null; then
echo -e "${CROSS}${RD} ID $VMID is already in use${CL}"
sleep 2
continue
fi
echo -e "${DGN}Virtual Machine ID: ${BGN}$VMID${CL}"
break
else
exit-script
fi
done
if MACH=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "MACHINE TYPE" --radiolist --cancel-button Exit-Script "Choose Type" 10 58 2 \
"i440fx" "Machine i440fx" ON \
"q35" "Machine q35" OFF \
3>&1 1>&2 2>&3); then
if [ $MACH = q35 ]; then
echo -e "${DGN}Using Machine Type: ${BGN}$MACH${CL}"
FORMAT=""
MACHINE=" -machine q35"
else
echo -e "${DGN}Using Machine Type: ${BGN}$MACH${CL}"
FORMAT=",efitype=4m"
MACHINE=""
fi
else
exit-script
fi
if DISK_CACHE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "DISK CACHE" --radiolist "Choose" --cancel-button Exit-Script 10 58 2 \
"0" "None (Default)" ON \
"1" "Write Through" OFF \
3>&1 1>&2 2>&3); then
if [ $DISK_CACHE = "1" ]; then
echo -e "${DGN}Using Disk Cache: ${BGN}Write Through${CL}"
DISK_CACHE="cache=writethrough,"
else
echo -e "${DGN}Using Disk Cache: ${BGN}None${CL}"
DISK_CACHE=""
fi
else
exit-script
fi
if VM_NAME=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set Hostname" 8 58 debian --title "HOSTNAME" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then
if [ -z $VM_NAME ]; then
HN="debian"
echo -e "${DGN}Using Hostname: ${BGN}$HN${CL}"
else
HN=$(echo ${VM_NAME,,} | tr -d ' ')
echo -e "${DGN}Using Hostname: ${BGN}$HN${CL}"
fi
else
exit-script
fi
if CPU_TYPE1=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "CPU MODEL" --radiolist "Choose" --cancel-button Exit-Script 10 58 2 \
"0" "KVM64 (Default)" ON \
"1" "Host" OFF \
3>&1 1>&2 2>&3); then
if [ $CPU_TYPE1 = "1" ]; then
echo -e "${DGN}Using CPU Model: ${BGN}Host${CL}"
CPU_TYPE=" -cpu host"
else
echo -e "${DGN}Using CPU Model: ${BGN}KVM64${CL}"
CPU_TYPE=""
fi
else
exit-script
fi
if CORE_COUNT=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Allocate CPU Cores" 8 58 2 --title "CORE COUNT" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then
if [ -z $CORE_COUNT ]; then
CORE_COUNT="2"
echo -e "${DGN}Allocated Cores: ${BGN}$CORE_COUNT${CL}"
else
echo -e "${DGN}Allocated Cores: ${BGN}$CORE_COUNT${CL}"
fi
else
exit-script
fi
if RAM_SIZE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Allocate RAM in MiB" 8 58 2048 --title "RAM" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then
if [ -z $RAM_SIZE ]; then
RAM_SIZE="2048"
echo -e "${DGN}Allocated RAM: ${BGN}$RAM_SIZE${CL}"
else
echo -e "${DGN}Allocated RAM: ${BGN}$RAM_SIZE${CL}"
fi
else
exit-script
fi
if BRG=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set a Bridge" 8 58 vmbr0 --title "BRIDGE" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then
if [ -z $BRG ]; then
BRG="vmbr0"
echo -e "${DGN}Using Bridge: ${BGN}$BRG${CL}"
else
echo -e "${DGN}Using Bridge: ${BGN}$BRG${CL}"
fi
else
exit-script
fi
if MAC1=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set a MAC Address" 8 58 $GEN_MAC --title "MAC ADDRESS" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then
if [ -z $MAC1 ]; then
MAC="$GEN_MAC"
echo -e "${DGN}Using MAC Address: ${BGN}$MAC${CL}"
else
MAC="$MAC1"
echo -e "${DGN}Using MAC Address: ${BGN}$MAC1${CL}"
fi
else
exit-script
fi
if VLAN1=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set a Vlan(leave blank for default)" 8 58 --title "VLAN" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then
if [ -z $VLAN1 ]; then
VLAN1="Default"
VLAN=""
echo -e "${DGN}Using Vlan: ${BGN}$VLAN1${CL}"
else
VLAN=",tag=$VLAN1"
echo -e "${DGN}Using Vlan: ${BGN}$VLAN1${CL}"
fi
else
exit-script
fi
if MTU1=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set Interface MTU Size (leave blank for default)" 8 58 --title "MTU SIZE" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then
if [ -z $MTU1 ]; then
MTU1="Default"
MTU=""
echo -e "${DGN}Using Interface MTU Size: ${BGN}$MTU1${CL}"
else
MTU=",mtu=$MTU1"
echo -e "${DGN}Using Interface MTU Size: ${BGN}$MTU1${CL}"
fi
else
exit-script
fi
if (whiptail --backtitle "Proxmox VE Helper Scripts" --title "START VIRTUAL MACHINE" --yesno "Start VM when completed?" 10 58); then
echo -e "${DGN}Start VM when completed: ${BGN}yes${CL}"
START_VM="yes"
else
echo -e "${DGN}Start VM when completed: ${BGN}no${CL}"
START_VM="no"
fi
if (whiptail --backtitle "Proxmox VE Helper Scripts" --title "ADVANCED SETTINGS COMPLETE" --yesno "Ready to create a Debian 12 VM?" --no-button Do-Over 10 58); then
echo -e "${RD}Creating a Debian 12 VM using the above advanced settings${CL}"
else
header_info
echo -e "${RD}Using Advanced Settings${CL}"
advanced_settings
fi
}
function start_script() {
if (whiptail --backtitle "Proxmox VE Helper Scripts" --title "SETTINGS" --yesno "Use Default Settings?" --no-button Advanced 10 58); then
header_info
echo -e "${BL}Using Default Settings${CL}"
default_settings
else
header_info
echo -e "${RD}Using Advanced Settings${CL}"
advanced_settings
fi
}
check_root
arch_check
pve_check
ssh_check
start_script
msg_info "Validating Storage"
while read -r line; do
TAG=$(echo $line | awk '{print $1}')
TYPE=$(echo $line | awk '{printf "%-10s", $2}')
FREE=$(echo $line | numfmt --field 4-6 --from-unit=K --to=iec --format %.2f | awk '{printf( "%9sB", $6)}')
ITEM=" Type: $TYPE Free: $FREE "
OFFSET=2
if [[ $((${#ITEM} + $OFFSET)) -gt ${MSG_MAX_LENGTH:-} ]]; then
MSG_MAX_LENGTH=$((${#ITEM} + $OFFSET))
fi
STORAGE_MENU+=("$TAG" "$ITEM" "OFF")
done < <(pvesm status -content images | awk 'NR>1')
VALID=$(pvesm status -content images | awk 'NR>1')
if [ -z "$VALID" ]; then
msg_error "Unable to detect a valid storage location."
exit
elif [ $((${#STORAGE_MENU[@]} / 3)) -eq 1 ]; then
STORAGE=${STORAGE_MENU[0]}
else
while [ -z "${STORAGE:+x}" ]; do
STORAGE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Storage Pools" --radiolist \
"Which storage pool you would like to use for ${HN}?\nTo make a selection, use the Spacebar.\n" \
16 $(($MSG_MAX_LENGTH + 23)) 6 \
"${STORAGE_MENU[@]}" 3>&1 1>&2 2>&3) || exit
done
fi
msg_ok "Using ${CL}${BL}$STORAGE${CL} ${GN}for Storage Location."
msg_ok "Virtual Machine ID is ${CL}${BL}$VMID${CL}."
msg_info "Retrieving the URL for the Debian 12 Qcow2 Disk Image"
URL=https://cloud.debian.org/images/cloud/bookworm/20240507-1740/debian-12-nocloud-amd64-20240507-1740.qcow2
sleep 2
msg_ok "${CL}${BL}${URL}${CL}"
wget -q --show-progress $URL
echo -en "\e[1A\e[0K"
FILE=$(basename $URL)
msg_ok "Downloaded ${CL}${BL}${FILE}${CL}"
STORAGE_TYPE=$(pvesm status -storage $STORAGE | awk 'NR>1 {print $2}')
case $STORAGE_TYPE in
nfs | dir)
DISK_EXT=".qcow2"
DISK_REF="$VMID/"
DISK_IMPORT="-format qcow2"
THIN=""
;;
btrfs)
DISK_EXT=".raw"
DISK_REF="$VMID/"
DISK_IMPORT="-format raw"
FORMAT=",efitype=4m"
THIN=""
;;
esac
for i in {0,1}; do
disk="DISK$i"
eval DISK${i}=vm-${VMID}-disk-${i}${DISK_EXT:-}
eval DISK${i}_REF=${STORAGE}:${DISK_REF:-}${!disk}
done
msg_info "Creating a Debian 12 VM"
qm create $VMID -agent 1${MACHINE} -tablet 0 -localtime 1 -bios ovmf${CPU_TYPE} -cores $CORE_COUNT -memory $RAM_SIZE \
-name $HN -tags proxmox-helper-scripts -net0 virtio,bridge=$BRG,macaddr=$MAC$VLAN$MTU -onboot 1 -ostype l26 -scsihw virtio-scsi-pci
pvesm alloc $STORAGE $VMID $DISK0 4M 1>&/dev/null
qm importdisk $VMID ${FILE} $STORAGE ${DISK_IMPORT:-} 1>&/dev/null
qm set $VMID \
-efidisk0 ${DISK0_REF}${FORMAT} \
-scsi0 ${DISK1_REF},${DISK_CACHE}${THIN}size=2G \
-boot order=scsi0 \
-serial0 socket \
-description "<div align='center'><a href='https://Helper-Scripts.com'><img src='https://raw.githubusercontent.com/community-scripts/ProxmoxVE/develop/misc/images/logo-81x112.png'/></a>
# Debian 12 VM
<a href='https://ko-fi.com/D1D7EP4GF'><img src='https://img.shields.io/badge/&#x2615;-Buy me a coffee-blue' /></a>
</div>" >/dev/null
msg_ok "Created a Debian 12 VM ${CL}${BL}(${HN})"
if [ "$START_VM" == "yes" ]; then
msg_info "Starting Debian 12 VM"
qm start $VMID
msg_ok "Started Debian 12 VM"
fi
msg_ok "Completed Successfully!\n"
echo "More Info at https://github.com/tteck/Proxmox/discussions/1988"