Создание и использование шаблонов в Proxmox VE
Введение
Что такое шаблон ВМ и для чего он используется
Шаблон виртуальной машины (VM template) — это заранее настроенный образ операционной системы с установленным необходимым программным обеспечением, конфигурациями и обновлениями. Шаблон нельзя запустить, но можно многократно клонировать, создавая на его основе полноценные рабочие ВМ.
Основные цели использования шаблонов:
- Стандартизация — все виртуальные машины создаются из единого эталонного образа.
- Экономия времени — не нужно каждый раз устанавливать ОС, настраивать ПО и применять обновления.
- Масштабирование — быстрое развёртывание десятков одинаковых серверов (веб-серверов, баз данных, рабочих станций).
Отличие от клонирования и моментальных снимков
| Механизм | Особенности | Когда использовать |
| Моментальный снимок (snapshot) | Сохраняет состояние диска и памяти в определённый момент; можно вернуться назад. | Перед рискованными обновлениями, тестированием. |
| Клонирование ВМ (clone) | Создаёт полную или связанную копию работающей или остановленной ВМ. | Создание резервной копии, дублирование ВМ «на лету». |
| Шаблон (template) | Специальный режим ВМ только для клонирования; сама ВМ не запускается. | Многократное создание идентичных ВМ. |
Главное отличие шаблона: после преобразования ВМ в шаблон её нельзя включить или изменить — она становится «золотым образом». При этом любой пользователь с правами на шаблон может создать свою копию.
Превращение существующей ВМ в шаблон
Подготовка ВМ: удаление уникальных данных
Перед конвертацией ВМ в шаблон необходимо очистить систему от уникальных идентификаторов, иначе каждая клонированная ВМ будет иметь одинаковые SSH-ключи, UUID файловых систем, hostname и т.д. Это вызовет конфликты в сети и проблемы безопасности.
Для Linux
Выполните внутри подготавливаемой ВМ:
- Очистка логов и временных файлов
-
sudo rm -rf /var/log/* /tmp/* /var/tmp/*
-
- Удаление machine-id (будет создан заново при загрузке)
-
sudo truncate -s 0 /etc/machine-id sudo rm -f /var/lib/dbus/machine-id
-
- Удаление SSH-ключей хоста (будут сгенерированы при первом запуске)
-
sudo rm -f /etc/ssh/ssh_host_*
-
- Очистка истории команд
-
history -c && rm -f ~/.bash_history
-
- Обновление базы данных locate (опционально)
-
sudo updatedb
-
Примерный вывод комманд:
Для дистрибутивов с NetworkManager добавьте в /etc/NetworkManager/NetworkManager.conf:
[main]
no-auto-default=*
Для Windows
Используйте встроенную утилиту Sysprep (обобщение образа):
- Запустите %WINDIR%\System32\Sysprep\sysprep.exe
- Выберите:
- Нажмите OK. После завершения ВМ выключится.
Sysprep удаляет уникальные данные (SID, имена компьютеров, драйверы устройств) и подготавливает образ для клонирования.
Выключение ВМ и конвертация в шаблон
- В веб-интерфейсе Proxmox VE выберите нужную ВМ.
- Убедитесь, что подготовленная ВМ выключена (статус «Stopped»).
- Нажмите правой кнопкой мыши на ВМ → Convert to template (или в меню «More»).
- Подтвердите действие.
После этого иконка ВМ изменится на шаблон (символ «штамп»), а статус станет «Template».
Особенности шаблона
- Шаблон нельзя запустить — кнопка «Start» неактивна.
- Диски шаблона доступны только для чтения — нельзя редактировать файлы внутри.
- Шаблон можно клонировать неограниченное количество раз.
- Удаление шаблона удаляет все его диски — будьте осторожны, если от него зависят связанные клоны (Linked Clone).
Развёртывание (клонирование) из шаблона
Запуск клонирования
- В левом дереве ресурсов выберите шаблон (отображается со специальным значком).
- Нажмите Clone (в верхней панели или в контекстном меню).
Выбор режима клонирования
| Режим | Описание | Плюсы / Минусы |
| Linked Clone (связанный клон) | Создаёт новый диск, который хранит только изменения относительно шаблона (Copy-on-Write). Сам шаблон должен оставаться нетронутым. | + Экономия места, очень быстрое создание. — Производительность ниже при записи, шаблон нельзя удалить. |
| Full Clone (полный клон) | Создаёт полностью независимую копию всех дисков шаблона. | + Независимость, высокая производительность. — Занимает много места, клонирование дольше. |
Для большинства сценариев (особенно если диски шаблона небольшие) рекомендуется Full Clone, чтобы не зависеть от исходного шаблона.
Настройки клона
Заполните параметры в окне клонирования:
- VM ID — уникальный числовой идентификатор (можно оставить автоматический).
- Name — имя новой ВМ (например, server-01).
- Target Storage — хранилище для дисков клона (если не указано, используется то же, где шаблон).
- Resource Pool (опционально) — поместить ВМ в пул ресурсов.
Важно: При клонировании шаблона нельзя сразу изменить размер диска или количество CPU/RAM — это делается уже после создания ВМ (через аппаратное обеспечение).
Запуск новой ВМ
- После завершения клонирования (процесс занимает от нескольких секунд до минут в зависимости от размера диска) вы увидите новую ВМ в списке.
- Выделите ВМ → нажмите Start.
- Дождитесь загрузки. Для Linux-клонов при первом запуске:
- Сгенерируются новые SSH-хостовые ключи.
- Создастся новый /etc/machine-id.
- Может запроситься настройка сети (если использовался DHCP).
- Для Windows-клонов (если использовали Sysprep) откроется окно приветствия (OOBE) — задайте имя компьютера, пользователя и настройки.
Подготовка образа для шаблона из облака (cloud-init)
Cloud-init — это стандарт для настройки облачных образов. Proxmox VE поддерживает cloud-init, что позволяет передавать в шаблон пользовательские данные (хостнейм, SSH-ключи, пароли, сетевые настройки) во время клонирования.
Создание шаблона с поддержкой cloud-init
- Подготовьте базовую ВМ с ОС (Ubuntu, Debian, CentOS, Rocky и т.д.). Установите пакет cloud-init:
- Debian/Ubuntu
- s
udo apt update && sudo apt install cloud-init -y
- s
- RHEL/CentOS
-
sudo yum install cloud-init -y
-
- Debian/Ubuntu
- Настройте cloud-init (обычно достаточно конфигурации по умолчанию). При необходимости отредактируйте /etc/cloud/cloud.cfg (например, установите имя пользователя ubuntu или admin).
- Выключите ВМ.
-
В веб-интерфейсе Proxmox выберите ВМ → Hardware → Add → CloudInit Drive.
-
Преобразуйте ВМ в шаблон как описано выше.
Настройка пользовательских данных при клонировании
При клонировании шаблона с cloud-init сделайте следующее:
- Запустите клонирование (Clone) в режиме Full Clone (или Linked).
- После создания клона (до первого запуска) выберите его в интерфейсе → перейдите на вкладку Cloud-Init.
- Заполните нужные поля:
- Нажмите Regenerate Image (перегенерировать конфигурацию).
- Запустите ВМ.
При первой загрузке cloud-init автоматически:
- Применит указанные сетевые настройки.
- Создаст пользователя с заданным паролем/ключом.
- Установит hostname и т.д.
Совет: После успешного первого запуска можно отключить cloud-init (удалить пакет или остановить сервис), чтобы при последующих перезагрузках не переписывались настройки.
Заключение
Использование шаблонов в Proxmox VE — это мощный инструмент для автоматизации и стандартизации среды виртуализации. Следуя инструкциям выше, вы сможете:
- Создавать эталонные образы как для Linux, так и для Windows.
- Быстро развёртывать новые ВМ вручную или через API (например, pvesh create /nodes/{node}/qemu -template 0 ...).
- Внедрить cloud-init для динамической настройки хостов.
Рекомендации:
- Храните шаблоны в отдельном пуле или на хранилище с репликацией.
- Регулярно обновляйте шаблоны.
- Используйте системы управления конфигурациями (Ansible, Terraform) для автоматического клонирования и настройки ВМ из шаблонов.






























