From ed4e69dd75f59ba82444e5df201904a0555425ce Mon Sep 17 00:00:00 2001 From: "CanbiZ (MickLesk)" <47820557+MickLesk@users.noreply.github.com> Date: Mon, 16 Feb 2026 19:26:22 +0100 Subject: [PATCH] style(vm): fix indentation inside create_vm() function body --- vm/haos-vm.sh | 130 ++++++++++++++-------------- vm/openwrt-vm.sh | 202 ++++++++++++++++++++++---------------------- vm/ubuntu2204-vm.sh | 130 ++++++++++++++-------------- vm/ubuntu2404-vm.sh | 130 ++++++++++++++-------------- vm/ubuntu2504-vm.sh | 130 ++++++++++++++-------------- 5 files changed, 361 insertions(+), 361 deletions(-) diff --git a/vm/haos-vm.sh b/vm/haos-vm.sh index 8d6ade88c..ee3f34eec 100644 --- a/vm/haos-vm.sh +++ b/vm/haos-vm.sh @@ -607,64 +607,64 @@ msg_ok "Using ${CL}${BL}$STORAGE${CL} ${GN}for Storage Location." msg_ok "Virtual Machine ID is ${CL}${BL}$VMID${CL}." create_vm() { -var_version="${BRANCH}" -msg_info "Retrieving the URL for Home Assistant ${BRANCH} Disk Image" -if [ "$BRANCH" == "$dev" ]; then - URL="https://os-artifacts.home-assistant.io/${BRANCH}/haos_ova-${BRANCH}.qcow2.xz" -else - URL="https://github.com/home-assistant/operating-system/releases/download/${BRANCH}/haos_ova-${BRANCH}.qcow2.xz" -fi + var_version="${BRANCH}" + msg_info "Retrieving the URL for Home Assistant ${BRANCH} Disk Image" + if [ "$BRANCH" == "$dev" ]; then + URL="https://os-artifacts.home-assistant.io/${BRANCH}/haos_ova-${BRANCH}.qcow2.xz" + else + URL="https://github.com/home-assistant/operating-system/releases/download/${BRANCH}/haos_ova-${BRANCH}.qcow2.xz" + fi -CACHE_DIR="/var/lib/vz/template/cache" -CACHE_FILE="$CACHE_DIR/$(basename "$URL")" -FILE_IMG="/var/lib/vz/template/tmp/${CACHE_FILE##*/%.xz}" # .qcow2 + CACHE_DIR="/var/lib/vz/template/cache" + CACHE_FILE="$CACHE_DIR/$(basename "$URL")" + FILE_IMG="/var/lib/vz/template/tmp/${CACHE_FILE##*/%.xz}" # .qcow2 -mkdir -p "$CACHE_DIR" "$(dirname "$FILE_IMG")" -msg_ok "${CL}${BL}${URL}${CL}" + mkdir -p "$CACHE_DIR" "$(dirname "$FILE_IMG")" + msg_ok "${CL}${BL}${URL}${CL}" -download_and_validate_xz "$URL" "$CACHE_FILE" + download_and_validate_xz "$URL" "$CACHE_FILE" -msg_info "Creating Home Assistant OS VM shell" -qm create $VMID -machine q35 -bios ovmf -agent 1 -tablet 0 -localtime 1 ${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 >/dev/null -msg_ok "Created VM shell" + msg_info "Creating Home Assistant OS VM shell" + qm create $VMID -machine q35 -bios ovmf -agent 1 -tablet 0 -localtime 1 ${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 >/dev/null + msg_ok "Created VM shell" -extract_xz_with_pv "$CACHE_FILE" "$FILE_IMG" + extract_xz_with_pv "$CACHE_FILE" "$FILE_IMG" -msg_info "Importing disk into storage ($STORAGE)" -if qm disk import --help >/dev/null 2>&1; then - IMPORT_CMD=(qm disk import) -else - IMPORT_CMD=(qm importdisk) -fi -IMPORT_OUT="$("${IMPORT_CMD[@]}" "$VMID" "$FILE_IMG" "$STORAGE" --format raw 2>&1 || true)" -DISK_REF="$(printf '%s\n' "$IMPORT_OUT" | sed -n "s/.*successfully imported disk '\([^']\+\)'.*/\1/p" | tr -d "\r\"'")" -[[ -z "$DISK_REF" ]] && DISK_REF="$(pvesm list "$STORAGE" | awk -v id="$VMID" '$5 ~ ("vm-"id"-disk-") {print $1":"$5}' | sort | tail -n1)" -[[ -z "$DISK_REF" ]] && { - msg_error "Unable to determine imported disk reference." - echo "$IMPORT_OUT" - exit 1 -} -msg_ok "Imported disk (${CL}${BL}${DISK_REF}${CL})" + msg_info "Importing disk into storage ($STORAGE)" + if qm disk import --help >/dev/null 2>&1; then + IMPORT_CMD=(qm disk import) + else + IMPORT_CMD=(qm importdisk) + fi + IMPORT_OUT="$("${IMPORT_CMD[@]}" "$VMID" "$FILE_IMG" "$STORAGE" --format raw 2>&1 || true)" + DISK_REF="$(printf '%s\n' "$IMPORT_OUT" | sed -n "s/.*successfully imported disk '\([^']\+\)'.*/\1/p" | tr -d "\r\"'")" + [[ -z "$DISK_REF" ]] && DISK_REF="$(pvesm list "$STORAGE" | awk -v id="$VMID" '$5 ~ ("vm-"id"-disk-") {print $1":"$5}' | sort | tail -n1)" + [[ -z "$DISK_REF" ]] && { + msg_error "Unable to determine imported disk reference." + echo "$IMPORT_OUT" + exit 1 + } + msg_ok "Imported disk (${CL}${BL}${DISK_REF}${CL})" -rm -f "$FILE_IMG" + rm -f "$FILE_IMG" -msg_info "Attaching EFI and root disk" -qm set $VMID \ - --efidisk0 ${STORAGE}:0,efitype=4m \ - --scsi0 ${DISK_REF},ssd=1,discard=on \ - --boot order=scsi0 \ - --serial0 socket >/dev/null -qm set $VMID --agent enabled=1 >/dev/null -msg_ok "Attached EFI and root disk" + msg_info "Attaching EFI and root disk" + qm set $VMID \ + --efidisk0 ${STORAGE}:0,efitype=4m \ + --scsi0 ${DISK_REF},ssd=1,discard=on \ + --boot order=scsi0 \ + --serial0 socket >/dev/null + qm set $VMID --agent enabled=1 >/dev/null + msg_ok "Attached EFI and root disk" -msg_info "Resizing disk to $DISK_SIZE" -qm resize $VMID scsi0 ${DISK_SIZE} >/dev/null -msg_ok "Resized disk" + msg_info "Resizing disk to $DISK_SIZE" + qm resize $VMID scsi0 ${DISK_SIZE} >/dev/null + msg_ok "Resized disk" -DESCRIPTION=$( - cat < Logo @@ -692,25 +692,25 @@ DESCRIPTION=$( EOF -) -qm set $VMID -description "$DESCRIPTION" >/dev/null -msg_ok "Created Homeassistant OS VM ${CL}${BL}(${HN})" + ) + qm set $VMID -description "$DESCRIPTION" >/dev/null + msg_ok "Created Homeassistant OS VM ${CL}${BL}(${HN})" -if whiptail --backtitle "Proxmox VE Helper Scripts" --title "Image Cache" \ - --yesno "Keep downloaded Home Assistant OS image for future VMs?\n\nFile: $CACHE_FILE" 10 70; then - msg_ok "Keeping cached image" -else - rm -f "$CACHE_FILE" - msg_ok "Deleted cached image" -fi + if whiptail --backtitle "Proxmox VE Helper Scripts" --title "Image Cache" \ + --yesno "Keep downloaded Home Assistant OS image for future VMs?\n\nFile: $CACHE_FILE" 10 70; then + msg_ok "Keeping cached image" + else + rm -f "$CACHE_FILE" + msg_ok "Deleted cached image" + fi -if [ "$START_VM" == "yes" ]; then - msg_info "Starting Home Assistant OS VM" - qm start $VMID - msg_ok "Started Home Assistant OS VM" -fi -post_update_to_api "done" "none" -msg_ok "Completed successfully!\n" + if [ "$START_VM" == "yes" ]; then + msg_info "Starting Home Assistant OS VM" + qm start $VMID + msg_ok "Started Home Assistant OS VM" + fi + post_update_to_api "done" "none" + msg_ok "Completed successfully!\n" } # end create_vm VM_CREATION_PHASE="yes" diff --git a/vm/openwrt-vm.sh b/vm/openwrt-vm.sh index 96442cc11..1d74ce92a 100644 --- a/vm/openwrt-vm.sh +++ b/vm/openwrt-vm.sh @@ -570,57 +570,57 @@ msg_ok "Using ${CL}${BL}$STORAGE${CL} ${GN}for Storage Location." msg_ok "Virtual Machine ID is ${CL}${BL}$VMID${CL}." create_vm() { -msg_info "Getting URL for OpenWrt Disk Image" + msg_info "Getting URL for OpenWrt Disk Image" -response=$(curl -fsSL https://openwrt.org) -stableversion=$(echo "$response" | sed -n 's/.*Current stable release - OpenWrt \([0-9.]\+\).*/\1/p' | head -n 1) -URL="https://downloads.openwrt.org/releases/$stableversion/targets/x86/64/openwrt-$stableversion-x86-64-generic-ext4-combined.img.gz" + response=$(curl -fsSL https://openwrt.org) + stableversion=$(echo "$response" | sed -n 's/.*Current stable release - OpenWrt \([0-9.]\+\).*/\1/p' | head -n 1) + URL="https://downloads.openwrt.org/releases/$stableversion/targets/x86/64/openwrt-$stableversion-x86-64-generic-ext4-combined.img.gz" -msg_ok "${CL}${BL}${URL}${CL}" -curl -f#SL -o "$(basename "$URL")" "$URL" -FILE=$(basename "$URL") -msg_ok "Downloaded ${CL}${BL}$FILE${CL}" + msg_ok "${CL}${BL}${URL}${CL}" + curl -f#SL -o "$(basename "$URL")" "$URL" + FILE=$(basename "$URL") + msg_ok "Downloaded ${CL}${BL}$FILE${CL}" -gunzip -f "$FILE" >/dev/null 2>&1 || true -FILE="${FILE%.*}" -msg_ok "Extracted OpenWrt Disk Image ${CL}${BL}$FILE${CL}" + gunzip -f "$FILE" >/dev/null 2>&1 || true + FILE="${FILE%.*}" + msg_ok "Extracted OpenWrt Disk Image ${CL}${BL}$FILE${CL}" -msg_info "Creating OpenWrt VM" -qm create $VMID -cores $CORE_COUNT -memory $RAM_SIZE -name $HN \ - -onboot 1 -ostype l26 -scsihw virtio-scsi-pci --tablet 0 -if [[ "$(pvesm status | awk -v s=$STORAGE '$1==s {print $2}')" == "dir" ]]; then - qm set $VMID -efidisk0 ${STORAGE}:0,efitype=4m,size=4M -else - pvesm alloc $STORAGE $VMID vm-$VMID-disk-0 4M >/dev/null - qm set $VMID -efidisk0 ${STORAGE}:vm-$VMID-disk-0,efitype=4m,size=4M -fi + msg_info "Creating OpenWrt VM" + qm create $VMID -cores $CORE_COUNT -memory $RAM_SIZE -name $HN \ + -onboot 1 -ostype l26 -scsihw virtio-scsi-pci --tablet 0 + if [[ "$(pvesm status | awk -v s=$STORAGE '$1==s {print $2}')" == "dir" ]]; then + qm set $VMID -efidisk0 ${STORAGE}:0,efitype=4m,size=4M + else + pvesm alloc $STORAGE $VMID vm-$VMID-disk-0 4M >/dev/null + qm set $VMID -efidisk0 ${STORAGE}:vm-$VMID-disk-0,efitype=4m,size=4M + fi -IMPORT_OUT="$(qm importdisk $VMID $FILE $STORAGE --format raw 2>&1 || true)" -DISK_REF="$(printf '%s\n' "$IMPORT_OUT" | sed -n "s/.*successfully imported disk '\([^']\+\)'.*/\1/p")" + IMPORT_OUT="$(qm importdisk $VMID $FILE $STORAGE --format raw 2>&1 || true)" + DISK_REF="$(printf '%s\n' "$IMPORT_OUT" | sed -n "s/.*successfully imported disk '\([^']\+\)'.*/\1/p")" -if [[ -z "$DISK_REF" ]]; then - DISK_REF="$(pvesm list "$STORAGE" | awk -v id="$VMID" '$1 ~ ("vm-"id"-disk-") {print $1}' | sort | tail -n1)" -fi + if [[ -z "$DISK_REF" ]]; then + DISK_REF="$(pvesm list "$STORAGE" | awk -v id="$VMID" '$1 ~ ("vm-"id"-disk-") {print $1}' | sort | tail -n1)" + fi -if [[ -z "$DISK_REF" ]]; then - msg_error "Unable to determine imported disk reference." - echo "$IMPORT_OUT" - exit 1 -fi + if [[ -z "$DISK_REF" ]]; then + msg_error "Unable to determine imported disk reference." + echo "$IMPORT_OUT" + exit 1 + fi -qm set $VMID \ - -efidisk0 ${STORAGE}:0,efitype=4m,size=4M \ - -scsi0 ${DISK_REF} \ - -boot order=scsi0 \ - -tags community-script >/dev/null -msg_ok "Attached disk" + qm set $VMID \ + -efidisk0 ${STORAGE}:0,efitype=4m,size=4M \ + -scsi0 ${DISK_REF} \ + -boot order=scsi0 \ + -tags community-script >/dev/null + msg_ok "Attached disk" -msg_info "Resizing disk to ${DISK_SIZE}" -qm disk resize "$VMID" scsi0 "${DISK_SIZE}" >/dev/null -msg_ok "Resized disk to ${DISK_SIZE}" + msg_info "Resizing disk to ${DISK_SIZE}" + qm disk resize "$VMID" scsi0 "${DISK_SIZE}" >/dev/null + msg_ok "Resized disk to ${DISK_SIZE}" -DESCRIPTION=$( - cat < Logo @@ -648,69 +648,69 @@ DESCRIPTION=$( EOF -) -qm set $VMID -description "$DESCRIPTION" >/dev/null + ) + qm set $VMID -description "$DESCRIPTION" >/dev/null -msg_ok "Created OpenWrt VM ${CL}${BL}(${HN})" -msg_info "OpenWrt is being started in order to configure the network interfaces." -qm start $VMID -sleep 15 -msg_info "Waiting for OpenWrt to boot..." -for i in {1..30}; do - if qm status "$VMID" | grep -q "running"; then - sleep 5 - msg_ok "OpenWrt is running" - break - fi - sleep 1 -done - -msg_ok "Network interfaces are being configured as OpenWrt initiates." - -if qm status "$VMID" | grep -q "running"; then - send_line_to_vm "" - send_line_to_vm "uci delete network.@device[0]" - send_line_to_vm "uci set network.wan=interface" - send_line_to_vm "uci set network.wan.device=eth1" - send_line_to_vm "uci set network.wan.proto=dhcp" - send_line_to_vm "uci delete network.lan" - send_line_to_vm "uci set network.lan=interface" - send_line_to_vm "uci set network.lan.device=eth0" - send_line_to_vm "uci set network.lan.proto=static" - send_line_to_vm "uci set network.lan.ipaddr=${LAN_IP_ADDR}" - send_line_to_vm "uci set network.lan.netmask=${LAN_NETMASK}" - send_line_to_vm "uci commit" - send_line_to_vm "halt" - msg_ok "Network interfaces configured in OpenWrt" -else - msg_error "VM is not running" - exit 1 -fi - -msg_info "Waiting for OpenWrt to shut down..." -until qm status "$VMID" | grep -q "stopped"; do - sleep 2 -done -msg_ok "OpenWrt has shut down" - -msg_info "Adding bridge interfaces on Proxmox side" -qm set $VMID \ - -net0 virtio,bridge=${LAN_BRG},macaddr=${LAN_MAC}${LAN_VLAN}${MTU} \ - -net1 virtio,bridge=${BRG},macaddr=${MAC}${VLAN}${MTU} >/dev/null -msg_ok "Bridge interfaces added" - -if [ "$START_VM" = "yes" ]; then - msg_info "Starting OpenWrt VM" + msg_ok "Created OpenWrt VM ${CL}${BL}(${HN})" + msg_info "OpenWrt is being started in order to configure the network interfaces." qm start $VMID - msg_ok "Started OpenWrt VM" -fi + sleep 15 + msg_info "Waiting for OpenWrt to boot..." + for i in {1..30}; do + if qm status "$VMID" | grep -q "running"; then + sleep 5 + msg_ok "OpenWrt is running" + break + fi + sleep 1 + done -VLAN_FINISH="" -if [ -z "$VLAN" ] && [ "$VLAN2" != "999" ]; then - VLAN_FINISH=" Please remember to adjust the VLAN tags to suit your network." -fi -post_update_to_api "done" "none" -msg_ok "Completed Successfully!${VLAN_FINISH:+\n$VLAN_FINISH}" + msg_ok "Network interfaces are being configured as OpenWrt initiates." + + if qm status "$VMID" | grep -q "running"; then + send_line_to_vm "" + send_line_to_vm "uci delete network.@device[0]" + send_line_to_vm "uci set network.wan=interface" + send_line_to_vm "uci set network.wan.device=eth1" + send_line_to_vm "uci set network.wan.proto=dhcp" + send_line_to_vm "uci delete network.lan" + send_line_to_vm "uci set network.lan=interface" + send_line_to_vm "uci set network.lan.device=eth0" + send_line_to_vm "uci set network.lan.proto=static" + send_line_to_vm "uci set network.lan.ipaddr=${LAN_IP_ADDR}" + send_line_to_vm "uci set network.lan.netmask=${LAN_NETMASK}" + send_line_to_vm "uci commit" + send_line_to_vm "halt" + msg_ok "Network interfaces configured in OpenWrt" + else + msg_error "VM is not running" + exit 1 + fi + + msg_info "Waiting for OpenWrt to shut down..." + until qm status "$VMID" | grep -q "stopped"; do + sleep 2 + done + msg_ok "OpenWrt has shut down" + + msg_info "Adding bridge interfaces on Proxmox side" + qm set $VMID \ + -net0 virtio,bridge=${LAN_BRG},macaddr=${LAN_MAC}${LAN_VLAN}${MTU} \ + -net1 virtio,bridge=${BRG},macaddr=${MAC}${VLAN}${MTU} >/dev/null + msg_ok "Bridge interfaces added" + + if [ "$START_VM" = "yes" ]; then + msg_info "Starting OpenWrt VM" + qm start $VMID + msg_ok "Started OpenWrt VM" + fi + + VLAN_FINISH="" + if [ -z "$VLAN" ] && [ "$VLAN2" != "999" ]; then + VLAN_FINISH=" Please remember to adjust the VLAN tags to suit your network." + fi + post_update_to_api "done" "none" + msg_ok "Completed Successfully!${VLAN_FINISH:+\n$VLAN_FINISH}" } # end create_vm VM_CREATION_PHASE="yes" diff --git a/vm/ubuntu2204-vm.sh b/vm/ubuntu2204-vm.sh index 5ca95512a..d6f234ec6 100644 --- a/vm/ubuntu2204-vm.sh +++ b/vm/ubuntu2204-vm.sh @@ -515,55 +515,55 @@ msg_ok "Using ${CL}${BL}$STORAGE${CL} ${GN}for Storage Location." msg_ok "Virtual Machine ID is ${CL}${BL}$VMID${CL}." create_vm() { -msg_info "Retrieving the URL for the Ubuntu 22.04 Disk Image" -URL=https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img -sleep 2 -msg_ok "${CL}${BL}${URL}${CL}" -curl -f#SL -o "$(basename "$URL")" "$URL" -echo -en "\e[1A\e[0K" -FILE=$(basename $URL) -msg_ok "Downloaded ${CL}${BL}${FILE}${CL}" + msg_info "Retrieving the URL for the Ubuntu 22.04 Disk Image" + URL=https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img + sleep 2 + msg_ok "${CL}${BL}${URL}${CL}" + curl -f#SL -o "$(basename "$URL")" "$URL" + echo -en "\e[1A\e[0K" + FILE=$(basename $URL) + msg_ok "Downloaded ${CL}${BL}${FILE}${CL}" -STORAGE_TYPE=$(pvesm status -storage $STORAGE | awk 'NR>1 {print $2}') -case $STORAGE_TYPE in -nfs | dir | cifs) - 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="" - ;; -*) - DISK_EXT="" - DISK_REF="" - DISK_IMPORT="-format raw" - ;; -esac -for i in {0,1}; do - disk="DISK$i" - eval DISK${i}=vm-${VMID}-disk-${i}${DISK_EXT:-} - eval DISK${i}_REF=${STORAGE}:${DISK_REF:-}${!disk} -done + STORAGE_TYPE=$(pvesm status -storage $STORAGE | awk 'NR>1 {print $2}') + case $STORAGE_TYPE in + nfs | dir | cifs) + 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="" + ;; + *) + DISK_EXT="" + DISK_REF="" + DISK_IMPORT="-format raw" + ;; + esac + for i in {0,1}; do + disk="DISK$i" + eval DISK${i}=vm-${VMID}-disk-${i}${DISK_EXT:-} + eval DISK${i}_REF=${STORAGE}:${DISK_REF:-}${!disk} + done -msg_info "Creating a Ubuntu 22.04 VM" -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 \ - -boot order=scsi0 \ - -serial0 socket >/dev/null -DESCRIPTION=$( - cat <&/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 \ + -boot order=scsi0 \ + -serial0 socket >/dev/null + DESCRIPTION=$( + cat < Logo @@ -591,25 +591,25 @@ DESCRIPTION=$( EOF -) -qm set $VMID -description "$DESCRIPTION" >/dev/null -if [ -n "$DISK_SIZE" ]; then - msg_info "Resizing disk to $DISK_SIZE GB" - qm resize $VMID scsi0 ${DISK_SIZE} >/dev/null -else - msg_info "Using default disk size of $DEFAULT_DISK_SIZE GB" - qm resize $VMID scsi0 ${DEFAULT_DISK_SIZE} >/dev/null -fi + ) + qm set $VMID -description "$DESCRIPTION" >/dev/null + if [ -n "$DISK_SIZE" ]; then + msg_info "Resizing disk to $DISK_SIZE GB" + qm resize $VMID scsi0 ${DISK_SIZE} >/dev/null + else + msg_info "Using default disk size of $DEFAULT_DISK_SIZE GB" + qm resize $VMID scsi0 ${DEFAULT_DISK_SIZE} >/dev/null + fi -msg_ok "Created a Ubuntu 22.04 VM ${CL}${BL}(${HN})" -if [ "$START_VM" == "yes" ]; then - msg_info "Starting Ubuntu 22.04 VM" - qm start $VMID - msg_ok "Started Ubuntu 22.04 VM" -fi -post_update_to_api "done" "none" -msg_ok "Completed successfully!\n" -echo -e "Setup Cloud-Init before starting \n + msg_ok "Created a Ubuntu 22.04 VM ${CL}${BL}(${HN})" + if [ "$START_VM" == "yes" ]; then + msg_info "Starting Ubuntu 22.04 VM" + qm start $VMID + msg_ok "Started Ubuntu 22.04 VM" + fi + post_update_to_api "done" "none" + msg_ok "Completed successfully!\n" + echo -e "Setup Cloud-Init before starting \n More info at https://github.com/community-scripts/ProxmoxVE/discussions/272 \n" } # end create_vm diff --git a/vm/ubuntu2404-vm.sh b/vm/ubuntu2404-vm.sh index b98177d3f..3fbc648fc 100644 --- a/vm/ubuntu2404-vm.sh +++ b/vm/ubuntu2404-vm.sh @@ -517,55 +517,55 @@ msg_ok "Using ${CL}${BL}$STORAGE${CL} ${GN}for Storage Location." msg_ok "Virtual Machine ID is ${CL}${BL}$VMID${CL}." create_vm() { -msg_info "Retrieving the URL for the Ubuntu 24.04 Disk Image" -URL=https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img -sleep 2 -msg_ok "${CL}${BL}${URL}${CL}" -curl -f#SL -o "$(basename "$URL")" "$URL" -echo -en "\e[1A\e[0K" -FILE=$(basename $URL) -msg_ok "Downloaded ${CL}${BL}${FILE}${CL}" + msg_info "Retrieving the URL for the Ubuntu 24.04 Disk Image" + URL=https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img + sleep 2 + msg_ok "${CL}${BL}${URL}${CL}" + curl -f#SL -o "$(basename "$URL")" "$URL" + echo -en "\e[1A\e[0K" + FILE=$(basename $URL) + msg_ok "Downloaded ${CL}${BL}${FILE}${CL}" -STORAGE_TYPE=$(pvesm status -storage $STORAGE | awk 'NR>1 {print $2}') -case $STORAGE_TYPE in -nfs | dir | cifs) - 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="" - ;; -*) - DISK_EXT="" - DISK_REF="" - DISK_IMPORT="-format raw" - ;; -esac -for i in {0,1}; do - disk="DISK$i" - eval DISK${i}=vm-${VMID}-disk-${i}${DISK_EXT:-} - eval DISK${i}_REF=${STORAGE}:${DISK_REF:-}${!disk} -done + STORAGE_TYPE=$(pvesm status -storage $STORAGE | awk 'NR>1 {print $2}') + case $STORAGE_TYPE in + nfs | dir | cifs) + 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="" + ;; + *) + DISK_EXT="" + DISK_REF="" + DISK_IMPORT="-format raw" + ;; + esac + for i in {0,1}; do + disk="DISK$i" + eval DISK${i}=vm-${VMID}-disk-${i}${DISK_EXT:-} + eval DISK${i}_REF=${STORAGE}:${DISK_REF:-}${!disk} + done -msg_info "Creating a Ubuntu 24.04 VM" -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 \ - -boot order=scsi0 \ - -serial0 socket >/dev/null -DESCRIPTION=$( - cat <&/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 \ + -boot order=scsi0 \ + -serial0 socket >/dev/null + DESCRIPTION=$( + cat < Logo @@ -593,25 +593,25 @@ DESCRIPTION=$( EOF -) -qm set $VMID -description "$DESCRIPTION" >/dev/null -if [ -n "$DISK_SIZE" ]; then - msg_info "Resizing disk to $DISK_SIZE GB" - qm resize $VMID scsi0 ${DISK_SIZE} >/dev/null -else - msg_info "Using default disk size of $DEFAULT_DISK_SIZE GB" - qm resize $VMID scsi0 ${DEFAULT_DISK_SIZE} >/dev/null -fi + ) + qm set $VMID -description "$DESCRIPTION" >/dev/null + if [ -n "$DISK_SIZE" ]; then + msg_info "Resizing disk to $DISK_SIZE GB" + qm resize $VMID scsi0 ${DISK_SIZE} >/dev/null + else + msg_info "Using default disk size of $DEFAULT_DISK_SIZE GB" + qm resize $VMID scsi0 ${DEFAULT_DISK_SIZE} >/dev/null + fi -msg_ok "Created a Ubuntu 24.04 VM ${CL}${BL}(${HN})" -if [ "$START_VM" == "yes" ]; then - msg_info "Starting Ubuntu 24.04 VM" - qm start $VMID - msg_ok "Started Ubuntu 24.04 VM" -fi -post_update_to_api "done" "none" -msg_ok "Completed successfully!\n" -echo -e "Setup Cloud-Init before starting \n + msg_ok "Created a Ubuntu 24.04 VM ${CL}${BL}(${HN})" + if [ "$START_VM" == "yes" ]; then + msg_info "Starting Ubuntu 24.04 VM" + qm start $VMID + msg_ok "Started Ubuntu 24.04 VM" + fi + post_update_to_api "done" "none" + msg_ok "Completed successfully!\n" + echo -e "Setup Cloud-Init before starting \n More info at https://github.com/community-scripts/ProxmoxVE/discussions/272 \n" } # end create_vm diff --git a/vm/ubuntu2504-vm.sh b/vm/ubuntu2504-vm.sh index 95b048145..70f298381 100644 --- a/vm/ubuntu2504-vm.sh +++ b/vm/ubuntu2504-vm.sh @@ -516,55 +516,55 @@ msg_ok "Using ${CL}${BL}$STORAGE${CL} ${GN}for Storage Location." msg_ok "Virtual Machine ID is ${CL}${BL}$VMID${CL}." create_vm() { -msg_info "Retrieving the URL for the Ubuntu 25.04 Disk Image" -URL=https://cloud-images.ubuntu.com/plucky/current/plucky-server-cloudimg-amd64.img -sleep 2 -msg_ok "${CL}${BL}${URL}${CL}" -curl -f#SL -o "$(basename "$URL")" "$URL" -echo -en "\e[1A\e[0K" -FILE=$(basename $URL) -msg_ok "Downloaded ${CL}${BL}${FILE}${CL}" + msg_info "Retrieving the URL for the Ubuntu 25.04 Disk Image" + URL=https://cloud-images.ubuntu.com/plucky/current/plucky-server-cloudimg-amd64.img + sleep 2 + msg_ok "${CL}${BL}${URL}${CL}" + curl -f#SL -o "$(basename "$URL")" "$URL" + echo -en "\e[1A\e[0K" + FILE=$(basename $URL) + msg_ok "Downloaded ${CL}${BL}${FILE}${CL}" -STORAGE_TYPE=$(pvesm status -storage $STORAGE | awk 'NR>1 {print $2}') -case $STORAGE_TYPE in -nfs | dir | cifs) - 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="" - ;; -*) - DISK_EXT="" - DISK_REF="" - DISK_IMPORT="-format raw" - ;; -esac -for i in {0,1}; do - disk="DISK$i" - eval DISK${i}=vm-${VMID}-disk-${i}${DISK_EXT:-} - eval DISK${i}_REF=${STORAGE}:${DISK_REF:-}${!disk} -done + STORAGE_TYPE=$(pvesm status -storage $STORAGE | awk 'NR>1 {print $2}') + case $STORAGE_TYPE in + nfs | dir | cifs) + 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="" + ;; + *) + DISK_EXT="" + DISK_REF="" + DISK_IMPORT="-format raw" + ;; + esac + for i in {0,1}; do + disk="DISK$i" + eval DISK${i}=vm-${VMID}-disk-${i}${DISK_EXT:-} + eval DISK${i}_REF=${STORAGE}:${DISK_REF:-}${!disk} + done -msg_info "Creating a Ubuntu 25.04 VM" -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 \ - -boot order=scsi0 \ - -serial0 socket >/dev/null -DESCRIPTION=$( - cat <&/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 \ + -boot order=scsi0 \ + -serial0 socket >/dev/null + DESCRIPTION=$( + cat < Logo @@ -592,25 +592,25 @@ DESCRIPTION=$( EOF -) -qm set $VMID -description "$DESCRIPTION" >/dev/null -if [ -n "$DISK_SIZE" ]; then - msg_info "Resizing disk to $DISK_SIZE GB" - qm resize $VMID scsi0 ${DISK_SIZE} >/dev/null -else - msg_info "Using default disk size of $DEFAULT_DISK_SIZE GB" - qm resize $VMID scsi0 ${DEFAULT_DISK_SIZE} >/dev/null -fi + ) + qm set $VMID -description "$DESCRIPTION" >/dev/null + if [ -n "$DISK_SIZE" ]; then + msg_info "Resizing disk to $DISK_SIZE GB" + qm resize $VMID scsi0 ${DISK_SIZE} >/dev/null + else + msg_info "Using default disk size of $DEFAULT_DISK_SIZE GB" + qm resize $VMID scsi0 ${DEFAULT_DISK_SIZE} >/dev/null + fi -msg_ok "Created a Ubuntu 25.04 VM ${CL}${BL}(${HN})" -if [ "$START_VM" == "yes" ]; then - msg_info "Starting Ubuntu 25.04 VM" - qm start $VMID - msg_ok "Started Ubuntu 25.04 VM" -fi -post_update_to_api "done" "none" -msg_ok "Completed successfully!\n" -echo -e "Setup Cloud-Init before starting \n + msg_ok "Created a Ubuntu 25.04 VM ${CL}${BL}(${HN})" + if [ "$START_VM" == "yes" ]; then + msg_info "Starting Ubuntu 25.04 VM" + qm start $VMID + msg_ok "Started Ubuntu 25.04 VM" + fi + post_update_to_api "done" "none" + msg_ok "Completed successfully!\n" + echo -e "Setup Cloud-Init before starting \n More info at https://github.com/community-scripts/ProxmoxVE/discussions/272 \n" } # end create_vm