~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The first step is to prepare your VM. Basically you can use any VM.
-Simply install the Cloud-Init packages inside the VM that you want to
+Simply install the Cloud-Init packages *inside the VM* that you want to
prepare. On Debian/Ubuntu based systems this is as simple as:
----
# download the image
wget https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-amd64.img
-# create a new VM
-qm create 9000 --memory 2048 --net0 virtio,bridge=vmbr0
+# create a new VM with VirtIO SCSI controller
+qm create 9000 --memory 2048 --net0 virtio,bridge=vmbr0 --scsihw virtio-scsi-pci
-# import the downloaded disk to local-lvm storage
-qm importdisk 9000 bionic-server-cloudimg-amd64.img local-lvm
-
-# finally attach the new disk to the VM as scsi drive
-qm set 9000 --scsihw virtio-scsi-pci --scsi0 local-lvm:vm-9000-disk-1
+# import the downloaded disk to the local-lvm storage, attaching it as a SCSI drive
+qm set 9000 --scsi0 local-lvm:0,import-from=/path/to/bionic-server-cloudimg-amd64.img
----
NOTE: Ubuntu Cloud-Init images require the `virtio-scsi-pci`
qm set 9000 --ide2 local-lvm:cloudinit
----
-To be able to boot directly from the Cloud-Init image, set the
-`bootdisk` parameter to `scsi0`, and restrict BIOS to boot from disk
-only. This will speed up booting, because VM BIOS skips the testing for
-a bootable CD-ROM.
+To be able to boot directly from the Cloud-Init image, set the `boot` parameter
+to `order=scsi0` to restrict BIOS to boot from this disk only. This will speed
+up booting, because VM BIOS skips the testing for a bootable CD-ROM.
----
-qm set 9000 --boot c --bootdisk scsi0
+qm set 9000 --boot order=scsi0
----
For many Cloud-Init images, it is required to configure a serial console and use