К основному содержимому

Шаблоны 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-ключ в шаблоне ведёт на учётную запись, к которой нет доступа у посторонних.
  • Выбран осознанно тип клона: связанный для скорости, полный для независимости от шаблона.
  • Процесс клонирования и настройки сети проверен на тестовом сервере перед массовым запуском.

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

← Назад в базу знаний Задать вопрос поддержке