Для создания шаблона виртуальной машины с cloudinit в Proxmox сначала необходимо скачать соответствующий образ, это можно сделать командой:
wget <image_url>
где <image_url> - ссылка на образ в qcow2 формате.
Далее создать виртуальную машину командой:
qm create <ID> --name "<vm_name>" --memory 2048 --cores 2 --net0 virtio,bridge=vmbr0
где <ID> - id виртуальной машины в Proxmox (указать не занятый),
<vm_name> - имя виртуальной машины.
Далее добавить скачанный образ к созданной виртуальной машине:
qm importdisk <ID> <image_name>.qcow2 <storage_name>
где <ID> - id созданной виртуальной машины,
<image_name> - имя скаченного образа, без расширения (qcow2),
<storage_name> - названия хранилища в которое будет размещена виртуальная машина.
Далее назначить контроллер SCSi:
qm set <ID> --scsihw virtio-scsi-pci --scsi0 <storage_name>:<ID>/vm-<ID>-disk-0.raw
где <ID> - id созданной виртуальной машины,
<storage_name> - названия хранилища в которое будет размещена виртуальная машина.
Далее указываем устройство для загрузки виртуальной машины:
qm set <ID> --boot c --bootdisk scsi0
Далее добавляем образ cloudinit:
qm set <ID> --ide2 <storage_name>:cloudinit
где <ID> - id созданной виртуальной машины,
<storage_name> - названия хранилища в которое будет размещена виртуальная машина.
Далее включаем поддержку QEMU Guest Agent для виртуальной машины:
qm set <ID> --agent enabled=1
где <ID> - id созданной виртуальной машины.
Далее задает сетевую конфигурацию для первого сетевого интерфейса и настраиваем автоматическое получение IP-адреса через DHCP для сетевого интерфейса гостевой ОС:
qm set <ID> --ipconfig0 ip=dhcp
где <ID> - id созданной виртуальной машины.
Далее настраивает учетные данные для гостевой ОС через Cloud-Init:
qm set <ID> --ciuser <user> --cipassword <password>
где <ID> - id созданной виртуальной машины,
<user> - имя пользователя,
<password> - пароль пользователя.
В итоге выполняем конвертацию виртуальной машины в шаблон виртуальной машины:
qm template <ID>
где <ID> - id созданной виртуальной машины.