Перейти к основному содержимому

VM Template Ubuntu Cloud Init

Выбрать образ Ubuntu Cloud Init и скачать его на свой сервер

Сайт: Ubuntu Cloud Images

Дальниейшие команды выполнять на самом сервере Proxmox

Скачать образ:

cd /tmp
wget https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img

Изменить базовый размер диска

qemu-img resize noble-server-cloudimg-amd64.img 15G

Создать VM с нужными параметрами:

qm create 2000 --name "ubuntu-template" --ostype l26 --memory 4096 --agent 1 --bios ovmf --machine q35 --efidisk0 local-lvm:0,pre-enrolled-keys=0 --cpu x86-64-v2-AES --cores 2 --vga serial0 --serial0 socket --net0 virtio,bridge=vmbr0
  • --cpu x86-64-v2-AES - желательно или x86-64-v4 (по умолчанию kvm64 - максимальная совместимость)
  • --ostype l26 - тип ОС Linux 2.6/3.x/4.x/5.x
  • --agent - включить QEMU Guest Agent
  • --machine q35 - использовать современную модель машины Q35
  • --bios ovmf - использовать UEFI BIOS
  • --efidisk0 - создать EFI диск для UEFI загрузки
  • --vga serial0 --serial0 socket - использовать консоль через serial (полезно для серверов без GUI)

Импортировать диск с ОС и подключить Cloud Init диск:

qm importdisk 2000 /tmp/noble-server-cloudimg-amd64.img local-lvm
qm set 2000 --scsihw virtio-scsi-pci --virtio0 local-lvm:vm-2000-disk-1,discard=on
qm set 2000 --boot order=virtio0
qm set 2000 --scsi1 local-lvm:cloudinit

Создать файл с настройками сети для Cloud Init, где команды на обновление пакетов и установку QEMU Guest Agent

nano /var/lib/vz/snippets/ubuntu.yaml

Вставить содержимое файла:

#cloud-config
timezone: Asia/Yekaterinburg
package_upgrade: true
package_reboot_if_required: true
packages:
- qemu-guest-agent
- net-tools
- curl
runcmd:
- systemctl start qemu-guest-agent

Настроить Cloud Init параметры для VM:

qm set 2000 --cicustom "vendor=local:snippets/ubuntu.yaml"
qm set 2000 --ciuser root --cipassword '12345'
qm set 2000 --tags ubuntu
qm set 2000 --sshkeys ~/.ssh/ansible.pub
qm set 2000 --ipconfig0 ip=dhcp
qm set 2000 --nameserver "8.8.8.8 1.1.1.1"
qm set 2000 --searchdomain "local"

Превратить VM в шаблон:

qm template 2000

Теперь можно создавать новые VM из этого шаблона

qm clone 2000 2001 --name ubuntu-vm1 --full --description "host1"

Если нужно поменять на статический IP и включить автозапуск:

qm set 2001 --ipconfig0 ip=10.100.0.201/24,gw=10.100.0.1
qm set 2001 --onboot 1