До основного вмісту

Шаблони VM і cloud-init у Proxmox VE: швидкий деплой

Proxmox VE · 29.09.2026

Що таке шаблон VM і навіщо потрібен cloud-init

Шаблон у Proxmox VE — це заготовка віртуальної машини, з якої можна швидко клонувати нові VM без повторного встановлення операційної системи. Cloud-init — стандарт налаштування хмарних образів під час першого старту: він задає ім'я хоста, мережу, користувача і SSH-ключ ще до того, як система повністю завантажиться.

Разом шаблон і cloud-init перетворюють розгортання сервера на операцію на хвилину: клонували шаблон, передали параметри мережі і ключа, запустили VM — вона сама сконфігурується під час першого завантаження. Це особливо корисно під час масового створення віртуальних машин з однаковою базовою конфігурацією.

Як підготувати хмарний образ під шаблон

Для шаблону використовується не звичайний ISO, а готовий хмарний образ дистрибутива у форматі qcow2 — він вже містить агент cloud-init і не потребує ручного встановлення через інсталятор.

wget https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img
qm create 9000 --name ubuntu-24-04-template --memory 2048 --cores 2 --net0 virtio,bridge=vmbr0

Номер 9000 умовний: як ID шаблонів зручно резервувати діапазон 9000-9999, щоб не плутати їх із робочими VM. Назву варто одразу зробити зрозумілою, наприклад із версією дистрибутива.

Як створити шаблон із VM у Proxmox VE

Після створення VM у неї імпортують завантажений диск і підключають окремий пристрій cloud-init, який зберігає параметри першого запуску.

qm importdisk 9000 noble-server-cloudimg-amd64.img local-zfs
qm set 9000 --scsihw virtio-scsi-pci --scsi0 local-zfs:vm-9000-disk-0
qm set 9000 --ide2 local-zfs:cloudinit
qm set 9000 --boot c --bootdisk scsi0
qm set 9000 --serial0 socket --vga serial0
qm template 9000

Остання команда qm template 9000 перетворює звичайну VM на шаблон: диск переводиться в режим лише для читання, а сама VM зникає зі списку тих, що можна запускати — тепер вона слугує джерелом для клонів.

Налаштування cloud-init: користувач, SSH-ключ, мережа

Параметри першого запуску задаються на вкладці Cloud-Init картки VM або через CLI ще до перетворення VM на шаблон.

ПараметрПризначення
Userім'я облікового запису, яке буде створено в системі
SSH public keyпублічний ключ для входу без пароля
IP Configстатичний IP або DHCP для мережевого інтерфейсу
DNS domain/serversдомен пошуку і адреси DNS-серверів

Якщо задати користувача і ключ на рівні шаблону, кожен клон отримає однакові стартові дані, а конкретну IP-адресу зручніше перевизначати вже після клонування — під конкретний сервер.

Клонування VM із шаблону: пов'язані і повні клони

Із шаблону можна зробити два типи клонів: пов'язаний (linked clone) і повний (full clone). Пов'язаний клон зберігає лише різницю з диском шаблону і створюється майже миттєво, але залежить від вихідного шаблону і потребує сховище з підтримкою такого режиму. Повний клон копіює весь диск цілком і не залежить від шаблону після створення.

qm clone 9000 201 --name web-01 --full

Детальніше про різницю між знімками і клонами, а також про те, коли пов'язаний клон небезпечніший за повний, розказано у статті про знімки і клонування VM.

Автоматизація масового розгортання через API

Клонування і налаштування cloud-init зручно викликати скриптом, якщо сервери розгортаються регулярно: параметри IP, імені і ключа можна передати одразу після клонування однією командою.

qm clone 9000 202 --name web-02 --full
qm set 202 --ipconfig0 ip=10.0.0.22/24,gw=10.0.0.1
qm set 202 --sshkeys ~/.ssh/deploy_key.pub
qm start 202

Той самий результат досягається через REST API без консолі вузла — це зручно для CI/CD і зовнішніх систем оркестрації. Подробиці викликів і авторизації через токен описані у статті про REST API і автоматизацію Proxmox VE.

Чек-лист перед використанням шаблону в продакшені

  • Образ базується на офіційному хмарному дистрибутиві з підтримкою cloud-init.
  • ID шаблонів винесено в окремий діапазон і не перетинається з робочими VM.
  • SSH-ключ у шаблоні веде на обліковий запис, до якого немає доступу у сторонніх.
  • Свідомо обрано тип клону: пов'язаний для швидкості, повний для незалежності від шаблону.
  • Процес клонування і налаштування мережі перевірено на тестовому сервері перед масовим запуском.

Після перевірки шаблон можна сміливо використовувати для повторюваного розгортання серверів однакової конфігурації без ручного встановлення ОС на кожній машині.

← Назад до бази знань Поставити питання підтримці