Files
terraform/proxmox/scripts/create-debian12-template.sh
T
2026-09-27 22:17:30 +13:00

59 lines
1.5 KiB
Bash

#!/bin/bash
# Run this in the Proxmox web shell (node: proxmox → Shell)
# Creates a Debian 12 cloud-init template (VM ID 9000)
set -euo pipefail
TEMPLATE_ID=9000
TEMPLATE_NAME="debian-12-cloud"
STORAGE="local-lvm"
IMAGE_URL="https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-genericcloud-amd64.qcow2"
IMAGE_FILE="/tmp/debian-12-genericcloud-amd64.qcow2"
echo "==> Downloading Debian 12 cloud image..."
wget -q --show-progress -O "$IMAGE_FILE" "$IMAGE_URL"
echo "==> Installing qemu-guest-agent into image..."
apt-get install -y libguestfs-tools
virt-customize -a "$IMAGE_FILE" \
--install qemu-guest-agent \
--truncate /etc/machine-id
echo "==> Removing old template if it exists..."
if qm status $TEMPLATE_ID &>/dev/null; then
qm destroy $TEMPLATE_ID --purge
fi
echo "==> Creating VM $TEMPLATE_ID..."
qm create $TEMPLATE_ID \
--name "$TEMPLATE_NAME" \
--memory 2048 \
--cores 2 \
--net0 virtio,bridge=vmbr0 \
--ostype l26 \
--agent enabled=1 \
--serial0 socket \
--vga serial0
echo "==> Importing disk to $STORAGE..."
qm importdisk $TEMPLATE_ID "$IMAGE_FILE" $STORAGE
echo "==> Configuring disk and cloud-init..."
qm set $TEMPLATE_ID \
--scsihw virtio-scsi-pci \
--scsi0 "$STORAGE:vm-${TEMPLATE_ID}-disk-0,discard=on" \
--ide2 "$STORAGE:cloudinit" \
--boot c \
--bootdisk scsi0 \
--ipconfig0 ip=dhcp \
--ciupgrade 1
echo "==> Converting to template..."
qm template $TEMPLATE_ID
echo "==> Cleaning up..."
rm -f "$IMAGE_FILE"
echo ""
echo "Done! Template ID $TEMPLATE_ID ($TEMPLATE_NAME) is ready."