Step 1: Download the Ubuntu image

1
2
3
4
5
6
SRC_IMG="https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64-disk-kvm.img"
#VMSTORAGE="/vmstorage"
VMSTORAGE="/var/lib/vz/images"
IMG_NAME="jammy-server-cloudimg-amd64-disk-kvm.qcow2"
IMG_PATH="$VMSTORAGE/$IMG_NAME"
wget -O $IMG_PATH $SRC_IMG

Step 2: Add necessary packages

1
2
sudo apt install -y libguestfs-tools
sudo virt-customize -a $IMG_PATH --install cloud-initramfs-growroot,atop,htop,nano,vim,qemu-guest-agent,curl,wget,unattended-upgrades,git

Step 3: Modify /etc/ssh/sshd_config

1
sudo virt-customize -a $IMG_PATH --run-command "sed -i 's/.*PasswordAuthentication.*/PasswordAuthentication yes/g' /etc/ssh/sshd_config"

Step 4: Modify /etc/apt/apt.conf.d/50unattended-upgrades

1
2
export EDITOR=nano
sudo -E virt-edit -a $IMG_PATH /etc/apt/apt.conf.d/50unattended-upgrades

Step 5: Modify /etc/default/grub

1
2
3
export EDITOR=nano
sudo -E virt-edit -a $IMG_PATH /etc/default/grub
sudo virt-customize -a $IMG_PATH --run-command "update-grub"

Step 6: Install ohmybash

1
2

sudo virt-customize -a $IMG_PATH --run-command "git clone https://github.com/ohmybash/oh-my-bash.git /opt/ohmybash"

Step 7: Fix timezone

1
sudo virt-customize -a $IMG_PATH --timezone "Europe/Berlin"

Step 8: Create the Proxmox template

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
TEMPL_NAME="ubuntu2204-cloud"
VMID="9000"
MEM="512"
DISK_SIZE="10G"
DISK_STOR="vmstorage"
NET_BRIDGE="vmbr0"
qm create $VMID --name $TEMPL_NAME --memory $MEM --net0 virtio,bridge=$NET_BRIDGE
qm importdisk $VMID $IMG_NAME $DISK_STOR
qm set $VMID --agent enabled=1
qm set $VMID --scsihw virtio-scsi-pci --scsi0 $DISK_STOR:vm-$VMID-disk-0
qm set $VMID --ide2 $DISK_STOR:cloudinit
qm set $VMID --boot c --bootdisk scsi0
qm set $VMID --serial0 socket --vga serial0
qm set $VMID --ipconfig0 ip=dhcp
qm set $VMID --ciuser=christian
qm set $VMID --cipassword="bla"
qm set $VMID --searchdomain=ka.beiheimdaheim.de
qm resize $VMID scsi0 $DISK_SIZE
qm template $VMID