$ -weight: 500;">wget -P /var/lib/vz/template/iso/ \ https://cloud-images.ubuntu.com/daily/server/releases/24.04/release/ubuntu-24.04-server-cloudimg-amd64.img
-weight: 500;">wget -P /var/lib/vz/template/iso/ \ https://cloud-images.ubuntu.com/daily/server/releases/24.04/release/ubuntu-24.04-server-cloudimg-amd64.img
-weight: 500;">wget -P /var/lib/vz/template/iso/ \ https://cloud-images.ubuntu.com/daily/server/releases/24.04/release/ubuntu-24.04-server-cloudimg-amd64.img
-weight: 500;">wget -P /var/lib/vz/template/iso/ \ https://cloud-images.ubuntu.com/daily/server/releases/24.04/release/ubuntu-24.04-server-cloudimg-amd64.img
-weight: 500;">wget -P /var/lib/vz/template/iso/ \ https://cloud-images.ubuntu.com/daily/server/releases/24.04/release/ubuntu-24.04-server-cloudimg-amd64.img
-weight: 500;">wget -P /var/lib/vz/template/iso/ \ https://cloud-images.ubuntu.com/daily/server/releases/24.04/release/ubuntu-24.04-server-cloudimg-amd64.img
ls /var/lib/vz/template/iso/ | grep -i ubuntu-
ls /var/lib/vz/template/iso/ | grep -i ubuntu-
ls /var/lib/vz/template/iso/ | grep -i ubuntu-
ls /var/lib/vz/template/iso/ | grep -i ubuntu-
ls /var/lib/vz/template/iso/ | grep -i ubuntu-
ls /var/lib/vz/template/iso/ | grep -i ubuntu-
ubuntu-24.04-server-cloudimg-amd64.img
ubuntu-24.04-server-cloudimg-amd64.img
ubuntu-24.04-server-cloudimg-amd64.img
qm create 501 \ --name ubuntu-cloud-init-template \ --memory 2048 \ --cores 2 \ --net0 virtio,bridge=vmbr0
qm create 501 \ --name ubuntu-cloud-init-template \ --memory 2048 \ --cores 2 \ --net0 virtio,bridge=vmbr0
qm create 501 \ --name ubuntu-cloud-init-template \ --memory 2048 \ --cores 2 \ --net0 virtio,bridge=vmbr0
qm create 501 \ --name ubuntu-cloud-init-template \ --memory 2048 \ --cores 2 \ --net0 virtio,bridge=vmbr0
qm create 501 \ --name ubuntu-cloud-init-template \ --memory 2048 \ --cores 2 \ --net0 virtio,bridge=vmbr0
qm create 501 \ --name ubuntu-cloud-init-template \ --memory 2048 \ --cores 2 \ --net0 virtio,bridge=vmbr0
qm importdisk 501 /var/lib/vz/template/iso/ubuntu-24.04-server-cloudimg-amd64.img local-zfs
qm importdisk 501 /var/lib/vz/template/iso/ubuntu-24.04-server-cloudimg-amd64.img local-zfs
qm importdisk 501 /var/lib/vz/template/iso/ubuntu-24.04-server-cloudimg-amd64.img local-zfs
qm importdisk 501 /var/lib/vz/template/iso/ubuntu-24.04-server-cloudimg-amd64.img local-zfs
qm importdisk 501 /var/lib/vz/template/iso/ubuntu-24.04-server-cloudimg-amd64.img local-zfs
qm importdisk 501 /var/lib/vz/template/iso/ubuntu-24.04-server-cloudimg-amd64.img local-zfs
qm set 501 \ --scsihw virtio-scsi-pci \ --scsi0 local-zfs:vm-501-disk-0 \ --boot c \ --bootdisk scsi0
qm set 501 \ --scsihw virtio-scsi-pci \ --scsi0 local-zfs:vm-501-disk-0 \ --boot c \ --bootdisk scsi0
qm set 501 \ --scsihw virtio-scsi-pci \ --scsi0 local-zfs:vm-501-disk-0 \ --boot c \ --bootdisk scsi0
qm set 501 \ --scsihw virtio-scsi-pci \ --scsi0 local-zfs:vm-501-disk-0 \ --boot c \ --bootdisk scsi0
qm set 501 \ --scsihw virtio-scsi-pci \ --scsi0 local-zfs:vm-501-disk-0 \ --boot c \ --bootdisk scsi0
qm set 501 \ --scsihw virtio-scsi-pci \ --scsi0 local-zfs:vm-501-disk-0 \ --boot c \ --bootdisk scsi0
qm set 501 --ide2 local-zfs:cloudinit
qm set 501 --ide2 local-zfs:cloudinit
qm set 501 --ide2 local-zfs:cloudinit
qm set 501 --ide2 local-zfs:cloudinit
qm set 501 --ide2 local-zfs:cloudinit
qm set 501 --ide2 local-zfs:cloudinit
qm set 501 --agent enabled=1
qm set 501 --agent enabled=1
qm set 501 --agent enabled=1
qm set 501 --agent enabled=1
qm set 501 --agent enabled=1
qm set 501 --agent enabled=1
ssh-keygen -t ed25519 -C "ubuntu-template" -f ~/.ssh/id_ed25519_ubuntu_template
ssh-keygen -t ed25519 -C "ubuntu-template" -f ~/.ssh/id_ed25519_ubuntu_template
ssh-keygen -t ed25519 -C "ubuntu-template" -f ~/.ssh/id_ed25519_ubuntu_template
ssh-keygen -t ed25519 -C "ubuntu-template" -f ~/.ssh/id_ed25519_ubuntu_template
ssh-keygen -t ed25519 -C "ubuntu-template" -f ~/.ssh/id_ed25519_ubuntu_template
ssh-keygen -t ed25519 -C "ubuntu-template" -f ~/.ssh/id_ed25519_ubuntu_template
~/.ssh/id_ed25519_ubuntu_template
~/.ssh/id_ed25519_ubuntu_template
~/.ssh/id_ed25519_ubuntu_template
~/.ssh/id_ed25519_ubuntu_template.pub
~/.ssh/id_ed25519_ubuntu_template.pub
~/.ssh/id_ed25519_ubuntu_template.pub
pbcopy < ~/.ssh/id_ed25519_ubuntu_template.pub
pbcopy < ~/.ssh/id_ed25519_ubuntu_template.pub
pbcopy < ~/.ssh/id_ed25519_ubuntu_template.pub
pbcopy < ~/.ssh/id_ed25519_ubuntu_template.pub
pbcopy < ~/.ssh/id_ed25519_ubuntu_template.pub
pbcopy < ~/.ssh/id_ed25519_ubuntu_template.pub
mkdir -p /root/cloudinit/ubuntu-template
cd /root/cloudinit/ubuntu-template
mkdir -p /root/cloudinit/ubuntu-template
cd /root/cloudinit/ubuntu-template
mkdir -p /root/cloudinit/ubuntu-template
cd /root/cloudinit/ubuntu-template
mkdir -p /root/cloudinit/ubuntu-template
cd /root/cloudinit/ubuntu-template
mkdir -p /root/cloudinit/ubuntu-template
cd /root/cloudinit/ubuntu-template
mkdir -p /root/cloudinit/ubuntu-template
cd /root/cloudinit/ubuntu-template
#cloud-config
hostname: ubuntu-template
users: - name: ubuntu ssh-authorized-keys: - paste_the_public_key_you_copied_earlier -weight: 600;">sudo: ALL=(ALL) NOPASSWD:ALL shell: /bin/bash
package_update: true
package_upgrade: true
packages: - qemu-guest-agent
runcmd: - -weight: 500;">systemctl -weight: 500;">enable qemu-guest-agent - -weight: 500;">systemctl -weight: 500;">start qemu-guest-agent
#cloud-config
hostname: ubuntu-template
users: - name: ubuntu ssh-authorized-keys: - paste_the_public_key_you_copied_earlier -weight: 600;">sudo: ALL=(ALL) NOPASSWD:ALL shell: /bin/bash
package_update: true
package_upgrade: true
packages: - qemu-guest-agent
runcmd: - -weight: 500;">systemctl -weight: 500;">enable qemu-guest-agent - -weight: 500;">systemctl -weight: 500;">start qemu-guest-agent
#cloud-config
hostname: ubuntu-template
users: - name: ubuntu ssh-authorized-keys: - paste_the_public_key_you_copied_earlier -weight: 600;">sudo: ALL=(ALL) NOPASSWD:ALL shell: /bin/bash
package_update: true
package_upgrade: true
packages: - qemu-guest-agent
runcmd: - -weight: 500;">systemctl -weight: 500;">enable qemu-guest-agent - -weight: 500;">systemctl -weight: 500;">start qemu-guest-agent
#cloud-config
hostname: ubuntu-template
users: - name: ubuntu ssh-authorized-keys: - paste_the_public_key_you_copied_earlier -weight: 600;">sudo: ALL=(ALL) NOPASSWD:ALL shell: /bin/bash
package_update: true
package_upgrade: true
packages: - qemu-guest-agent
runcmd: - -weight: 500;">systemctl -weight: 500;">enable qemu-guest-agent - -weight: 500;">systemctl -weight: 500;">start qemu-guest-agent
#cloud-config
hostname: ubuntu-template
users: - name: ubuntu ssh-authorized-keys: - paste_the_public_key_you_copied_earlier -weight: 600;">sudo: ALL=(ALL) NOPASSWD:ALL shell: /bin/bash
package_update: true
package_upgrade: true
packages: - qemu-guest-agent
runcmd: - -weight: 500;">systemctl -weight: 500;">enable qemu-guest-agent - -weight: 500;">systemctl -weight: 500;">start qemu-guest-agent
#cloud-config
hostname: ubuntu-template
users: - name: ubuntu ssh-authorized-keys: - paste_the_public_key_you_copied_earlier -weight: 600;">sudo: ALL=(ALL) NOPASSWD:ALL shell: /bin/bash
package_update: true
package_upgrade: true
packages: - qemu-guest-agent
runcmd: - -weight: 500;">systemctl -weight: 500;">enable qemu-guest-agent - -weight: 500;">systemctl -weight: 500;">start qemu-guest-agent
instance-id: ubuntu-template
local-hostname: ubuntu-template
instance-id: ubuntu-template
local-hostname: ubuntu-template
instance-id: ubuntu-template
local-hostname: ubuntu-template
instance-id: ubuntu-template
local-hostname: ubuntu-template
instance-id: ubuntu-template
local-hostname: ubuntu-template
instance-id: ubuntu-template
local-hostname: ubuntu-template
cloud-image-utils
cloud-image-utils
cloud-image-utils
-weight: 500;">apt -weight: 500;">update
-weight: 500;">apt -weight: 500;">install cloud-image-utils
-weight: 500;">apt -weight: 500;">update
-weight: 500;">apt -weight: 500;">install cloud-image-utils
-weight: 500;">apt -weight: 500;">update
-weight: 500;">apt -weight: 500;">install cloud-image-utils
-weight: 500;">apt -weight: 500;">update
-weight: 500;">apt -weight: 500;">install cloud-image-utils
-weight: 500;">apt -weight: 500;">update
-weight: 500;">apt -weight: 500;">install cloud-image-utils
-weight: 500;">apt -weight: 500;">update
-weight: 500;">apt -weight: 500;">install cloud-image-utils
cloud-localds
cloud-localds
cloud-localds
cloud-localds nocloud.iso user-data meta-data
cloud-localds nocloud.iso user-data meta-data
cloud-localds nocloud.iso user-data meta-data
cloud-localds nocloud.iso user-data meta-data
cloud-localds nocloud.iso user-data meta-data
cloud-localds nocloud.iso user-data meta-data
/var/lib/vz/template/iso/
/var/lib/vz/template/iso/
/var/lib/vz/template/iso/
mv nocloud.iso /var/lib/vz/template/iso/
mv nocloud.iso /var/lib/vz/template/iso/
mv nocloud.iso /var/lib/vz/template/iso/
mv nocloud.iso /var/lib/vz/template/iso/
mv nocloud.iso /var/lib/vz/template/iso/
mv nocloud.iso /var/lib/vz/template/iso/
pvesm -weight: 500;">status
pvesm -weight: 500;">status
pvesm -weight: 500;">status
qm set 501 --ide2 local:iso/nocloud.iso,media=cdrom
qm set 501 --ide2 local:iso/nocloud.iso,media=cdrom
qm set 501 --ide2 local:iso/nocloud.iso,media=cdrom
qm set 501 --ide2 local:iso/nocloud.iso,media=cdrom
qm set 501 --ide2 local:iso/nocloud.iso,media=cdrom
qm set 501 --ide2 local:iso/nocloud.iso,media=cdrom
pvesm -weight: 500;">status
pvesm -weight: 500;">status
pvesm -weight: 500;">status
qm template 501
qm template 501
qm template 501
qm template 501
qm template 501
qm template 501
qm clone 501 105 --name "ubuntu-vm01"
qm clone 501 105 --name "ubuntu-vm01"
qm clone 501 105 --name "ubuntu-vm01"
qm clone 501 105 --name "ubuntu-vm01"
qm clone 501 105 --name "ubuntu-vm01"
qm clone 501 105 --name "ubuntu-vm01"
qm set 105 --memory 4096 --cores 4
qm set 105 --memory 4096 --cores 4
qm set 105 --memory 4096 --cores 4
qm set 105 --memory 4096 --cores 4
qm set 105 --memory 4096 --cores 4
qm set 105 --memory 4096 --cores 4
qm -weight: 500;">start 105
qm -weight: 500;">start 105
qm -weight: 500;">start 105
qm -weight: 500;">start 105
qm -weight: 500;">start 105
qm -weight: 500;">start 105
~/.ssh/config
~/.ssh/config
~/.ssh/config
~/.ssh/config
~/.ssh/config
~/.ssh/config
Host ubuntu HostName 10.160.0.64 User ubuntu IdentityFile ~/.ssh/id_ed25519_ubuntu_template
Host ubuntu HostName 10.160.0.64 User ubuntu IdentityFile ~/.ssh/id_ed25519_ubuntu_template
Host ubuntu HostName 10.160.0.64 User ubuntu IdentityFile ~/.ssh/id_ed25519_ubuntu_template
Host ubuntu HostName 10.160.0.64 User ubuntu IdentityFile ~/.ssh/id_ed25519_ubuntu_template
Host ubuntu HostName 10.160.0.64 User ubuntu IdentityFile ~/.ssh/id_ed25519_ubuntu_template
Host ubuntu HostName 10.160.0.64 User ubuntu IdentityFile ~/.ssh/id_ed25519_ubuntu_template - Use the NoCloud datasource with Ubuntu Cloud Images
- Inject SSH keys from your admin box
- Enable and verify the Proxmox guest agent
- Clone pre-configured VMs using Proxmox CLI
Let’s walk through the whole process—from image preparation to SSH-ready VM deployment. - ~/.ssh/id_ed25519_ubuntu_template - ~/.ssh/id_ed25519_ubuntu_template.pub - Ideal for hands-off provisioning
- Cloud-init friendly
- Guest agent enabled out of the box
Found this helpful?Check out moretech tutorialsor follow myGitHub, where I share homelab setups, automation tools, and real-world projects from my day-to-day work as an IT consultant.