2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								#!/usr/bin/env bash
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-01-24 12:02:07 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# Copyright (c) 2021-2025 community-scripts ORG 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# Author: MickLesk (CanbiZ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-04-01 10:25:46 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								source  /dev/stdin <<< $( curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/api.func) 
							 
						 
					
						
							
								
									
										
										
										
											2025-02-10 09:13:09 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								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) 
							 
						 
					
						
							
								
									
										
										
										
											2025-02-10 09:13:09 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								RANDOM_UUID = " $( cat /proc/sys/kernel/random/uuid) " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								METHOD = "" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								NSAPP = "ubuntu-2204-vm" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								var_os = "ubuntu" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								var_version = "2204" 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								YW = $( echo  "\033[33m" ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								BL = $( echo  "\033[36m" ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								RD = $( echo  "\033[01;31m" ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								BGN = $( echo  "\033[4;92m" ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								GN = $( echo  "\033[1;92m" ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								DGN = $( echo  "\033[32m" ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								CL = $( echo  "\033[m" ) 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-24 12:02:07 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								CL = $( echo  "\033[m" ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								BOLD = $( echo  "\033[1m" ) 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								BFR = "\\r\\033[K" 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-24 12:02:07 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								HOLD = " " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								TAB = "  " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								CM = " ${ TAB } ✔️ ${ TAB } ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								CROSS = " ${ TAB } ✖️ ${ TAB } ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								INFO = " ${ TAB } 💡 ${ TAB } ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								OS = " ${ TAB } 🖥️ ${ TAB } ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								CONTAINERTYPE = " ${ TAB } 📦 ${ TAB } ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								DISKSIZE = " ${ TAB } 💾 ${ TAB } ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								CPUCORE = " ${ TAB } 🧠 ${ TAB } ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								RAMSIZE = " ${ TAB } 🛠️ ${ TAB } ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								CONTAINERID = " ${ TAB } 🆔 ${ TAB } ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								HOSTNAME = " ${ TAB } 🏠 ${ TAB } ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								BRIDGE = " ${ TAB } 🌉 ${ TAB } ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								GATEWAY = " ${ TAB } 🌐 ${ TAB } ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								DEFAULT = " ${ TAB } ⚙️ ${ TAB } ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								MACADDRESS = " ${ TAB } 🔗 ${ TAB } ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								VLANTAG = " ${ TAB } 🏷️ ${ TAB } ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								CREATING = " ${ TAB } 🚀 ${ TAB } ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								ADVANCED = " ${ TAB } 🧩 ${ TAB } ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								THIN = "discard=on,ssd=1," 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								set  -e
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								trap  'error_handler $LINENO "$BASH_COMMAND"'  ERR
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								trap  cleanup EXIT
							 
						 
					
						
							
								
									
										
										
										
											2025-04-01 10:25:46 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								trap  'post_update_to_api "failed" "INTERRUPTED"'  SIGINT
							 
						 
					
						
							
								
									
										
										
										
											2025-02-10 09:13:09 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								trap  'post_update_to_api "failed" "TERMINATED"'  SIGTERM
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								function  error_handler( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  local  exit_code = " $? " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  local  line_number = " $1 " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  local  command = " $2 " 
							 
						 
					
						
							
								
									
										
										
										
											2025-02-10 09:13:09 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  post_update_to_api "failed"  " $command " 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								  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( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-09 18:50:27 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  if  qm status " $VMID "  & >/dev/null;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    qm stop " $VMID "  & >/dev/null
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    qm destroy " $VMID "  & >/dev/null
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								function  cleanup( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  popd  >/dev/null
							 
						 
					
						
							
								
									
										
										
										
											2025-04-09 18:50:27 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  rm -rf " $TEMP_DIR " 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								TEMP_DIR = $( mktemp -d) 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-09 18:50:27 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								pushd  " $TEMP_DIR "  >/dev/null
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								if  whiptail --backtitle "Proxmox VE Helper Scripts"  --title "Ubuntu 22.04 VM"  --yesno "This will create a New Ubuntu 22.04 VM. Proceed?"  10  58;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  :
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								else 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-01 10:25:46 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  header_info &&  echo  -e " ${ CROSS } ${ RD } User exited script ${ CL } \n "  &&  exit 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								function  msg_info( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  local  msg = " $1 " 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-24 12:02:07 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  echo  -ne " ${ TAB } ${ YW } ${ HOLD } ${ msg } ${ HOLD } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								function  msg_ok( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  local  msg = " $1 " 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-24 12:02:07 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  echo  -e " ${ BFR } ${ CM } ${ GN } ${ msg } ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								function  msg_error( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  local  msg = " $1 " 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-24 12:02:07 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  echo  -e " ${ BFR } ${ CROSS } ${ RD } ${ msg } ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								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( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-09 18:50:27 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  if  ! pveversion |  grep -Eq "pve-manager/8\.[1-4](\.[0-9]+)*" ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-24 12:02:07 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    msg_error " ${ CROSS } ${ RD } This version of Proxmox Virtual Environment is not supported " 
							 
						 
					
						
							
								
									
										
										
										
											2024-06-30 10:18:37 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    echo  -e "Requires Proxmox Virtual Environment Version 8.1 or later." 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    echo  -e "Exiting..." 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    sleep 2 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    exit 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-24 12:02:07 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  fi 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								function  arch_check( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  if  [  " $( dpkg --print-architecture) "  !=  "amd64"  ] ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-24 12:02:07 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    echo  -e " \n  ${ INFO } ${ YWB } This script will not work with PiMox! \n " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    echo  -e " \n  ${ YWB } Visit https://github.com/asylumexp/Proxmox for ARM64 support. \n " 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    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
							 
						 
					
						
							
								
									
										
										
										
											2025-01-24 12:02:07 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  echo  -e " \n ${ CROSS } ${ RD } User exited script ${ CL } \n " 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								  exit 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								function  default_settings( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  VMID = " $NEXTID " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  FORMAT = ",efitype=4m" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  MACHINE = "" 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-24 12:02:07 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  DISK_SIZE = "5G" 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								  DISK_CACHE = "" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  HN = "ubuntu" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  CPU_TYPE = "" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  CORE_COUNT = "2" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  RAM_SIZE = "2048" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  BRG = "vmbr0" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  MAC = " $GEN_MAC " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  VLAN = "" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  MTU = "" 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-24 12:02:07 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  START_VM = "yes" 
							 
						 
					
						
							
								
									
										
										
										
											2025-02-10 09:13:09 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  METHOD = "default" 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-24 12:02:07 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  echo  -e " ${ CONTAINERID } ${ BOLD } ${ DGN } Virtual Machine ID:  ${ BGN } ${ VMID } ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  echo  -e " ${ CONTAINERTYPE } ${ BOLD } ${ DGN } Machine Type:  ${ BGN } i440fx ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  echo  -e " ${ DISKSIZE } ${ BOLD } ${ DGN } Disk Size:  ${ BGN } ${ DISK_SIZE } ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  echo  -e " ${ DISKSIZE } ${ BOLD } ${ DGN } Disk Cache:  ${ BGN } None ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  echo  -e " ${ HOSTNAME } ${ BOLD } ${ DGN } Hostname:  ${ BGN } ${ HN } ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  echo  -e " ${ OS } ${ BOLD } ${ DGN } CPU Model:  ${ BGN } KVM64 ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  echo  -e " ${ CPUCORE } ${ BOLD } ${ DGN } CPU Cores:  ${ BGN } ${ CORE_COUNT } ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  echo  -e " ${ RAMSIZE } ${ BOLD } ${ DGN } RAM Size:  ${ BGN } ${ RAM_SIZE } ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  echo  -e " ${ BRIDGE } ${ BOLD } ${ DGN } Bridge:  ${ BGN } ${ BRG } ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  echo  -e " ${ MACADDRESS } ${ BOLD } ${ DGN } MAC Address:  ${ BGN } ${ MAC } ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  echo  -e " ${ VLANTAG } ${ BOLD } ${ DGN } VLAN:  ${ BGN } Default ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  echo  -e " ${ DEFAULT } ${ BOLD } ${ DGN } Interface MTU Size:  ${ BGN } Default ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  echo  -e " ${ GATEWAY } ${ BOLD } ${ DGN } Start VM when completed:  ${ BGN } yes ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  echo  -e " ${ CREATING } ${ BOLD } ${ DGN } Creating a Ubuntu 22.04 VM using the above default settings ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								function  advanced_settings( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2025-02-10 09:13:09 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  METHOD = "advanced" 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								  while  true;  do 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-09 18:50:27 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    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 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								      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 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-24 12:02:07 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      echo  -e " ${ CONTAINERID } ${ BOLD } ${ DGN } Virtual Machine ID:  ${ BGN } $VMID ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								      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 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-09 18:50:27 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    if  [  " $MACH "  =  q35 ] ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-24 12:02:07 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      echo  -e " ${ CONTAINERTYPE } ${ BOLD } ${ DGN } Machine Type:  ${ BGN } $MACH ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								      FORMAT = "" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      MACHINE = " -machine q35" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    else 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-24 12:02:07 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      echo  -e " ${ CONTAINERTYPE } ${ BOLD } ${ DGN } Machine Type:  ${ BGN } $MACH ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								      FORMAT = ",efitype=4m" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      MACHINE = "" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    exit-script
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  fi 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-01 10:25:46 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-01-24 12:02:07 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  if  DISK_SIZE = $( whiptail --backtitle "Proxmox VE Helper Scripts"  --inputbox "Set Disk Size in GiB (e.g., 10, 20)"  8  58  " $DISK_SIZE "  --title "DISK SIZE"  --cancel-button Exit-Script 3>& 1  1>& 2  2>& 3) ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    DISK_SIZE = $( echo  " $DISK_SIZE "  |  tr -d ' ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    if  [ [  " $DISK_SIZE "  = ~ ^[ 0-9] +$ ] ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      DISK_SIZE = " ${ DISK_SIZE } G " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      echo  -e " ${ DISKSIZE } ${ BOLD } ${ DGN } Disk Size:  ${ BGN } $DISK_SIZE ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    elif  [ [  " $DISK_SIZE "  = ~ ^[ 0-9] +G$ ] ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      echo  -e " ${ DISKSIZE } ${ BOLD } ${ DGN } Disk Size:  ${ BGN } $DISK_SIZE ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      echo  -e " ${ DISKSIZE } ${ BOLD } ${ RD } Invalid Disk Size. Please use a number (e.g., 10 or 10G). ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      exit-script
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    exit-script
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  fi 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-01 10:25:46 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								  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 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-09 18:50:27 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    if  [  " $DISK_CACHE "  =  "1"  ] ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-24 12:02:07 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      echo  -e " ${ DISKSIZE } ${ BOLD } ${ DGN } Disk Cache:  ${ BGN } Write Through ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								      DISK_CACHE = "cache=writethrough," 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    else 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-24 12:02:07 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      echo  -e " ${ DISKSIZE } ${ BOLD } ${ DGN } Disk Cache:  ${ BGN } None ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								      DISK_CACHE = "" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    exit-script
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  if  VM_NAME = $( whiptail --backtitle "Proxmox VE Helper Scripts"  --inputbox "Set Hostname"  8  58  ubuntu --title "HOSTNAME"  --cancel-button Exit-Script 3>& 1  1>& 2  2>& 3) ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-09 18:50:27 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    if  [  -z " $VM_NAME "  ] ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								      HN = "ubuntu" 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-24 12:02:07 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      echo  -e " ${ HOSTNAME } ${ BOLD } ${ DGN } Hostname:  ${ BGN } $HN ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    else 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-09 18:50:27 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      HN = $( echo  " ${ VM_NAME ,, } "  |  tr -d ' ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-24 12:02:07 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      echo  -e " ${ HOSTNAME } ${ BOLD } ${ DGN } Hostname:  ${ BGN } $HN ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    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 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-09 18:50:27 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    if  [  " $CPU_TYPE1 "  =  "1"  ] ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-24 12:02:07 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      echo  -e " ${ OS } ${ BOLD } ${ DGN } CPU Model:  ${ BGN } Host ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								      CPU_TYPE = " -cpu host" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    else 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-24 12:02:07 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      echo  -e " ${ OS } ${ BOLD } ${ DGN } CPU Model:  ${ BGN } KVM64 ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								      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 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-09 18:50:27 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    if  [  -z " $CORE_COUNT "  ] ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								      CORE_COUNT = "2" 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-24 12:02:07 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      echo  -e " ${ CPUCORE } ${ BOLD } ${ DGN } CPU Cores:  ${ BGN } $CORE_COUNT ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    else 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-24 12:02:07 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      echo  -e " ${ CPUCORE } ${ BOLD } ${ DGN } CPU Cores:  ${ BGN } $CORE_COUNT ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    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 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-09 18:50:27 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    if  [  -z " $RAM_SIZE "  ] ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								      RAM_SIZE = "2048" 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-24 12:02:07 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      echo  -e " ${ RAMSIZE } ${ BOLD } ${ DGN } RAM Size:  ${ BGN } $RAM_SIZE ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    else 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-24 12:02:07 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      echo  -e " ${ RAMSIZE } ${ BOLD } ${ DGN } RAM Size:  ${ BGN } $RAM_SIZE ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    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 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-09 18:50:27 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    if  [  -z " $BRG "  ] ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								      BRG = "vmbr0" 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-24 12:02:07 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      echo  -e " ${ BRIDGE } ${ BOLD } ${ DGN } Bridge:  ${ BGN } $BRG ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    else 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-24 12:02:07 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      echo  -e " ${ BRIDGE } ${ BOLD } ${ DGN } Bridge:  ${ BGN } $BRG ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    exit-script
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-04-09 18:50:27 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  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 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								      MAC = " $GEN_MAC " 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-24 12:02:07 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      echo  -e " ${ MACADDRESS } ${ BOLD } ${ DGN } MAC Address:  ${ BGN } $MAC ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      MAC = " $MAC1 " 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-24 12:02:07 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      echo  -e " ${ MACADDRESS } ${ BOLD } ${ DGN } MAC Address:  ${ BGN } $MAC1 ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    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 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-09 18:50:27 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    if  [  -z " $VLAN1 "  ] ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								      VLAN1 = "Default" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      VLAN = "" 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-24 12:02:07 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      echo  -e " ${ VLANTAG } ${ BOLD } ${ DGN } VLAN:  ${ BGN } $VLAN1 ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      VLAN = " ,tag= $VLAN1 " 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-24 12:02:07 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      echo  -e " ${ VLANTAG } ${ BOLD } ${ DGN } VLAN:  ${ BGN } $VLAN1 ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    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 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-09 18:50:27 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    if  [  -z " $MTU1 "  ] ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								      MTU1 = "Default" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      MTU = "" 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-24 12:02:07 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      echo  -e " ${ DEFAULT } ${ BOLD } ${ DGN } Interface MTU Size:  ${ BGN } $MTU1 ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      MTU = " ,mtu= $MTU1 " 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-24 12:02:07 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      echo  -e " ${ DEFAULT } ${ BOLD } ${ DGN } Interface MTU Size:  ${ BGN } $MTU1 ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    exit-script
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  if  ( whiptail --backtitle "Proxmox VE Helper Scripts"  --title "START VIRTUAL MACHINE"  --yesno "Start VM when completed?"  10  58) ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-24 12:02:07 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    echo  -e " ${ GATEWAY } ${ BOLD } ${ DGN } Start VM when completed:  ${ BGN } yes ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    START_VM = "yes" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  else 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-24 12:02:07 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    echo  -e " ${ GATEWAY } ${ BOLD } ${ DGN } Start VM when completed:  ${ BGN } no ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    START_VM = "no" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-01-24 12:02:07 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  if  ( whiptail --backtitle "Proxmox VE Helper Scripts"  --title "ADVANCED SETTINGS COMPLETE"  --yesno "Ready to create a Ubuntu 22.04 VM?"  --no-button Do-Over 10  58) ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    echo  -e " ${ CREATING } ${ BOLD } ${ DGN } Creating a Ubuntu 22.04 VM using the above advanced settings ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								  else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    header_info
							 
						 
					
						
							
								
									
										
										
										
											2025-01-24 12:02:07 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    echo  -e " ${ ADVANCED } ${ BOLD } ${ RD } Using Advanced Settings ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    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
							 
						 
					
						
							
								
									
										
										
										
											2025-01-24 12:02:07 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    echo  -e " ${ DEFAULT } ${ BOLD } ${ BL } Using Default Settings ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    default_settings
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    header_info
							 
						 
					
						
							
								
									
										
										
										
											2025-01-24 12:02:07 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    echo  -e " ${ ADVANCED } ${ BOLD } ${ RD } Using Advanced Settings ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    advanced_settings
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								check_root
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								arch_check
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								pve_check
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								ssh_check
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								start_script
							 
						 
					
						
							
								
									
										
										
										
											2025-02-10 09:13:09 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								post_to_api_vm
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								msg_info "Validating Storage" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								while  read  -r line;  do 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-09 18:50:27 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  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)}' ) 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								  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 Ubuntu 22.04 Disk Image" 
							 
						 
					
						
							
								
									
										
										
										
											2023-12-14 04:51:52 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								URL = https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								sleep 2 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								msg_ok " ${ CL } ${ BL } ${ URL } ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-03 16:01:23 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								curl -f#SL -o " $( basename " $URL " ) "  " $URL " 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								echo  -en "\e[1A\e[0K" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								FILE = $( basename $URL ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								msg_ok " Downloaded  ${ CL } ${ BL } ${ FILE } ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-04-09 18:50:27 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								STORAGE_TYPE = $( pvesm status -storage " $STORAGE "  |  awk 'NR>1 {print $2}' ) 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								case  $STORAGE_TYPE  in
							 
						 
					
						
							
								
									
										
										
										
											2025-01-24 12:02:07 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								nfs |  dir |  cifs) 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								  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 " 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-09 18:50:27 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  eval  DISK" ${ i } " = vm-" ${ VMID } " -disk-" ${ i } " " ${ DISK_EXT :- } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  eval  DISK" ${ i } " _REF = " ${ STORAGE } " :" ${ DISK_REF :- } " " ${ !disk } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								done 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								msg_info "Creating a Ubuntu 22.04 VM" 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-09 18:50:27 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								qm create " $VMID "  -agent 1" ${ MACHINE } "  -tablet 0  -localtime 1  -bios ovmf" ${ CPU_TYPE } "  -cores " $CORE_COUNT "  -memory " $RAM_SIZE "  \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  -name " $HN "  -tags community-script -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 = " ${ DISK_SIZE } "  \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  -ide2 " ${ STORAGE } " :cloudinit \
 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								  -boot order = scsi0 \
 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-24 12:02:07 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  -serial0 socket >/dev/null
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								DESCRIPTION = $( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  cat <<EOF
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								<div align = 'center' >
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  <a href = 'https://Helper-Scripts.com'  target = '_blank'  rel = 'noopener noreferrer' >
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    <img src = 'https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/images/logo-81x112.png'  alt = 'Logo'  style = 'width:81px;height:112px;' />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  </a>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  <h2 style = 'font-size: 24px; margin: 20px 0;' >ubuntu VM</h2>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  <p style = 'margin: 16px 0;' >
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    <a href = 'https://ko-fi.com/community_scripts'  target = '_blank'  rel = 'noopener noreferrer' >
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      <img src = 'https://img.shields.io/badge/☕-Buy us a coffee-blue'  alt = 'spend Coffee'  />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    </a>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  </p>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  <span style = 'margin: 0 10px;' >
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    <i class = "fa fa-github fa-fw"  style = "color: #f5f5f5;" ></i>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    <a href = 'https://github.com/community-scripts/ProxmoxVE'  target = '_blank'  rel = 'noopener noreferrer'  style = 'text-decoration: none; color: #00617f;' >GitHub</a>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  </span>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  <span style = 'margin: 0 10px;' >
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    <i class = "fa fa-comments fa-fw"  style = "color: #f5f5f5;" ></i>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    <a href = 'https://github.com/community-scripts/ProxmoxVE/discussions'  target = '_blank'  rel = 'noopener noreferrer'  style = 'text-decoration: none; color: #00617f;' >Discussions</a>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  </span>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  <span style = 'margin: 0 10px;' >
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    <i class = "fa fa-exclamation-circle fa-fw"  style = "color: #f5f5f5;" ></i>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    <a href = 'https://github.com/community-scripts/ProxmoxVE/issues'  target = '_blank'  rel = 'noopener noreferrer'  style = 'text-decoration: none; color: #00617f;' >Issues</a>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  </span>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								</div>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								EOF
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								qm set  " $VMID "  -description " $DESCRIPTION "  >/dev/null
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								if  [  -n " $DISK_SIZE "  ] ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-01 10:25:46 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  msg_info " Resizing disk to  $DISK_SIZE  GB " 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-09 18:50:27 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  qm resize " $VMID "  scsi0 " ${ DISK_SIZE } "  >/dev/null
							 
						 
					
						
							
								
									
										
										
										
											2025-01-24 12:02:07 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								else 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-01 10:25:46 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  msg_info " Using default disk size of  $DEFAULT_DISK_SIZE  GB " 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-09 18:50:27 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  qm resize " $VMID "  scsi0 " ${ DEFAULT_DISK_SIZE } "  >/dev/null
							 
						 
					
						
							
								
									
										
										
										
											2025-01-24 12:02:07 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								fi 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-27 09:57:22 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								msg_ok " Created a Ubuntu 22.04 VM  ${ CL } ${ BL } ( ${ HN } ) " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								if  [  " $START_VM "  = =  "yes"  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  msg_info "Starting Ubuntu 22.04 VM" 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-09 18:50:27 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  qm start " $VMID " 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								  msg_ok "Started Ubuntu 22.04 VM" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								fi 
							 
						 
					
						
							
								
									
										
										
										
											2025-02-10 09:13:09 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								post_update_to_api "done"  "none" 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 16:58:19 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								msg_ok "Completed Successfully!\n" 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-18 17:42:31 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								echo  -e " Setup Cloud-Init before starting \n
 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-24 12:02:07 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								More info at https://github.com/community-scripts/ProxmoxVE/discussions/272 \n "