- Preparing Cloud-Init Templates
- Cloud-Init Support - Proxmox VE
- Proxmox VE Administration Guide
- .../pve-docs/chapter-qm.html
- Steps for creating a template
wget https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-amd64.img
# Create a VM
qm create 9000 --name ubuntu1804-templ --memory 2048 --net0 virtio,bridge=vmbr1
# Import the disk in qcow2 format (as unused disk)
qm importdisk 9000 bionic-server-cloudimg-amd64.img local -format qcow2
# Attach the disk to the vm using VirtIO SCSI
qm set 9000 --scsihw virtio-scsi-pci --scsi0 /var/lib/vz/images/9000/vm-9000-disk-0.qcow2
# Important settings
qm set 9000 --ide2 local:cloudinit --boot c --bootdisk scsi0 --serial0 socket --vga serial0
# The initial disk is only 2GB, thus we make it larger
qm resize 9000 scsi0 +30G
# Using a dhcp server on vmbr1 or use static IP
qm set 9000 --ipconfig0 ip=dhcp
#qm set 9000 --ipconfig0 ip=10.10.10.222/24,gw=10.10.10.1
# user authentication for 'ubuntu' user (optional password)
qm set 9000 --sshkey ~/.ssh/id_rsa.pub
#qm set 9000 --cipassword AweSomePassword
# check the cloud-init config
qm cloudinit dump 9000 user
# create tempalte and a linked clone
qm template 9000
qm clone 9000 190 --name ubuntu1804-1
qm start 190
rm -v bionic-server-cloudimg-amd64.img
- Login with:
ssh [email protected]
qm shutdown 190 && qm wait
qm resize 190 scsi0 +8G
qm start 190
- Cloud-init v.18.2: CLI subcommands | Ubuntu
- Directory layout — Cloud-Init 19.2 documentation
- Testing and debugging cloud-init — Cloud-Init 19.2 documentation cloud-localds(1) — cloud-image-utils — Debian testing — Debian Manpages
https://docs.openstack.org/image-guide/convert-images.html
qemu-img convert -f raw -O qcow2 bionic-server-cloudimg-amd64.img bionic-server-cloudimg-amd64.qcow2
worked just fine.
Thanks.
FYI, following your gist with recent images also works fine.
Just
wget https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64-disk-kvm.img
or
wget https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-generic-amd64.qcow2
and adapt the file names where needed, and you're good to go;