From 6e826462145bb89d36ccbea7347ffb829aef01f4 Mon Sep 17 00:00:00 2001 From: Nikita Andriyanov Date: Thu, 27 Mar 2025 08:57:06 +0300 Subject: [PATCH 1/3] add ubuntu --- vm/docker-vm.sh | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/vm/docker-vm.sh b/vm/docker-vm.sh index 38bf0e1e7..9e19c8ccc 100644 --- a/vm/docker-vm.sh +++ b/vm/docker-vm.sh @@ -207,6 +207,25 @@ function advanced_settings() { exit-script fi + DEBIAN_NAME="Debian 12 (default)" + UBUNTU_NAME="Ubuntu 22.04 with cloud-init" + if MACH=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "IMAGE TYPE" --radiolist --cancel-button Exit-Script "Choose Type" 10 58 2 \ + "debian" $DEBIAN_NAME ON \ + "ubuntu" $UBUNTU_NAME OFF \ + 3>&1 1>&2 2>&3); then + if [ $MACH = debian ]; then + echo -e "${DGN}Using Image Type: ${BGN}$DEBIAN_NAME${CL}" + IMAGE=$DEBIAN_NAME + URL="https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-nocloud-$(dpkg --print-architecture).qcow2" + else + echo -e "${DGN}Using Machine Type: ${BGN}$UBUNTU_NAME${CL}" + IMAGE=$UBUNTU_NAME + URL="https://cloud-images.ubuntu.com/releases/noble/release/ubuntu-24.04-server-cloudimg-$(dpkg --print-architecture).img" + fi + else + exit-script + fi + if DISK_CACHE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "DISK CACHE" --radiolist "Choose" --cancel-button Exit-Script 10 58 2 \ "0" "None (Default)" ON \ "1" "Write Through" OFF \ @@ -384,8 +403,7 @@ else fi msg_ok "Using ${CL}${BL}$STORAGE${CL} ${GN}for Storage Location." msg_ok "Virtual Machine ID is ${CL}${BL}$VMID${CL}." -msg_info "Retrieving the URL for the Debian 12 Qcow2 Disk Image" -URL="https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-nocloud-$(dpkg --print-architecture).qcow2" +msg_info "Retrieving the URL for the ${IMAGE} Disk Image" sleep 2 msg_ok "${CL}${BL}${URL}${CL}" wget -q --show-progress $URL @@ -419,14 +437,14 @@ msg_info "Installing Pre-Requisite libguestfs-tools onto Host" apt-get -qq update && apt-get -qq install libguestfs-tools lsb-release -y >/dev/null msg_ok "Installed libguestfs-tools successfully" -msg_info "Adding Docker and Docker Compose Plugin to Debian 12 Qcow2 Disk Image" +msg_info "Adding Docker and Docker Compose Plugin to ${IMAGE} Disk Image" virt-customize -q -a "${FILE}" --install qemu-guest-agent,apt-transport-https,ca-certificates,curl,gnupg,software-properties-common,lsb-release >/dev/null && virt-customize -q -a "${FILE}" --run-command "mkdir -p /etc/apt/keyrings && curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg" >/dev/null && virt-customize -q -a "${FILE}" --run-command "echo 'deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian bookworm stable' > /etc/apt/sources.list.d/docker.list" >/dev/null && virt-customize -q -a "${FILE}" --run-command "apt-get update -qq && apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin" >/dev/null && virt-customize -q -a "${FILE}" --run-command "systemctl enable docker" >/dev/null && virt-customize -q -a "${FILE}" --run-command "echo -n > /etc/machine-id" >/dev/null -msg_ok "Added Docker and Docker Compose Plugin to Debian 12 Qcow2 Disk Image successfully" +msg_ok "Added Docker and Docker Compose Plugin to ${IMAGE} Disk Image successfully" msg_info "Creating a Docker VM" From 8366b8cc3a7a0a5159d551a763ed2b9187e3291c Mon Sep 17 00:00:00 2001 From: Nikita Andriyanov Date: Thu, 27 Mar 2025 11:35:23 +0300 Subject: [PATCH 2/3] add cloud init support --- vm/docker-vm.sh | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/vm/docker-vm.sh b/vm/docker-vm.sh index 9e19c8ccc..0461029c2 100644 --- a/vm/docker-vm.sh +++ b/vm/docker-vm.sh @@ -41,6 +41,9 @@ HOLD="-" CM="${GN}✓${CL}" CROSS="${RD}✗${CL}" THIN="discard=on,ssd=1," +DEBIAN_NAME="Debian 12 (default)" +UBUNTU_NAME="Ubuntu 22.04 with cloud-init" + set -e trap 'error_handler $LINENO "$BASH_COMMAND"' ERR trap cleanup EXIT @@ -145,6 +148,9 @@ function default_settings() { VMID="$NEXTID" FORMAT=",efitype=4m" MACHINE="" + IMAGE=$DEBIAN_NAME + URL="https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-nocloud-$(dpkg --print-architecture).qcow2" + CLOUD_INIT="" DISK_CACHE="" HN="docker" CPU_TYPE="" @@ -207,8 +213,6 @@ function advanced_settings() { exit-script fi - DEBIAN_NAME="Debian 12 (default)" - UBUNTU_NAME="Ubuntu 22.04 with cloud-init" if MACH=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "IMAGE TYPE" --radiolist --cancel-button Exit-Script "Choose Type" 10 58 2 \ "debian" $DEBIAN_NAME ON \ "ubuntu" $UBUNTU_NAME OFF \ @@ -221,6 +225,7 @@ function advanced_settings() { echo -e "${DGN}Using Machine Type: ${BGN}$UBUNTU_NAME${CL}" IMAGE=$UBUNTU_NAME URL="https://cloud-images.ubuntu.com/releases/noble/release/ubuntu-24.04-server-cloudimg-$(dpkg --print-architecture).img" + CLOUD_INIT="cloudinit" fi else exit-script @@ -433,6 +438,10 @@ for i in {0,1}; do eval DISK${i}_REF=${STORAGE}:${DISK_REF:-}${!disk} done +if [ -n "$CLOUD_INIT" ]; then + CLOUD_INIT = "--ide2 ${STORAGE}:${CLOUD_INIT}" +fi + msg_info "Installing Pre-Requisite libguestfs-tools onto Host" apt-get -qq update && apt-get -qq install libguestfs-tools lsb-release -y >/dev/null msg_ok "Installed libguestfs-tools successfully" @@ -457,6 +466,7 @@ qm set $VMID \ -scsi0 ${DISK1_REF},${DISK_CACHE}${THIN}size=2G \ -boot order=scsi0 \ -serial0 socket >/dev/null + ${CLOUD_INIT} qm resize $VMID scsi0 8G >/dev/null qm set $VMID --agent enabled=1 >/dev/null From 0ee04c750a4826fee3e5c74a8e3228190546875c Mon Sep 17 00:00:00 2001 From: Nikita Andriyanov Date: Thu, 27 Mar 2025 12:09:42 +0300 Subject: [PATCH 3/3] fix typo --- vm/docker-vm.sh | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/vm/docker-vm.sh b/vm/docker-vm.sh index 0461029c2..98dfd3fca 100644 --- a/vm/docker-vm.sh +++ b/vm/docker-vm.sh @@ -42,7 +42,7 @@ CM="${GN}✓${CL}" CROSS="${RD}✗${CL}" THIN="discard=on,ssd=1," DEBIAN_NAME="Debian 12 (default)" -UBUNTU_NAME="Ubuntu 22.04 with cloud-init" +UBUNTU_NAME="Ubuntu 24.04 with cloud-init" set -e trap 'error_handler $LINENO "$BASH_COMMAND"' ERR @@ -213,11 +213,11 @@ function advanced_settings() { exit-script fi - if MACH=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "IMAGE TYPE" --radiolist --cancel-button Exit-Script "Choose Type" 10 58 2 \ - "debian" $DEBIAN_NAME ON \ - "ubuntu" $UBUNTU_NAME OFF \ + if IMG=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "IMAGE TYPE" --radiolist --cancel-button Exit-Script "Choose Type" 10 58 2 \ + "debian" "$DEBIAN_NAME" ON \ + "ubuntu" "$UBUNTU_NAME" OFF \ 3>&1 1>&2 2>&3); then - if [ $MACH = debian ]; then + if [ $IMG = debian ]; then echo -e "${DGN}Using Image Type: ${BGN}$DEBIAN_NAME${CL}" IMAGE=$DEBIAN_NAME URL="https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-nocloud-$(dpkg --print-architecture).qcow2" @@ -439,7 +439,7 @@ for i in {0,1}; do done if [ -n "$CLOUD_INIT" ]; then - CLOUD_INIT = "--ide2 ${STORAGE}:${CLOUD_INIT}" + CLOUD_INIT="--ide2 ${STORAGE}:${CLOUD_INIT}" fi msg_info "Installing Pre-Requisite libguestfs-tools onto Host" @@ -465,7 +465,7 @@ qm set $VMID \ -efidisk0 ${DISK0_REF}${FORMAT} \ -scsi0 ${DISK1_REF},${DISK_CACHE}${THIN}size=2G \ -boot order=scsi0 \ - -serial0 socket >/dev/null + -serial0 socket >/dev/null \ ${CLOUD_INIT} qm resize $VMID scsi0 8G >/dev/null qm set $VMID --agent enabled=1 >/dev/null