Proxmox — это мощная, бесплатная и удобная платформа виртуализации, которая превращает один физический сервер в гибкий центр управления виртуальными машинами. Используя единый веб-интерфейс, вы можете запускать и управлять множеством серверов, создавать их резервные копии и объединять их в локальные сети.
Виртуализация — это не только изоляция окружений, но и скорость развертывания. Классическая установка операционной системы на виртуальные серверы через ISO-образ — надежный, но медленный путь: загрузка, ручная установка, настройка сети, добавление пользователей. Такой процесс занимает время и требует внимания администратора на каждом шаге.
Современные практики управления инфраструктурой требуют другого подхода — быстрого, воспроизводимого и автоматизируемого.
Использование готовых облачных образов в Proxmox позволяет за считанные минуты получить рабочую виртуальную машину, сразу готовую к работе и интеграции в рабочие процессы. А с помощью Cloud-Init можно автоматически добавить пользователя, задать пароль, добавить ключи SSH и настроить сетевые параметры.
В инструкции мы рассмотрим, как с помощью Proxmox создать шаблон из облачного образа Ubuntu 22.04, а на его основе — создавать новые виртуальные машины и изменять основные настройки с помощью Cloud-Init.
Описанный способ подойдет для образов в форматах .img и .qcow2.
Инструкция предполагает, что Proxmox уже развернут на вашем выделенном сервере.
cloud
Создание виртуальной машины
Переходим в веб-интерфейс Proxmox по адресу https://ваш-ip-aдрес:8006.
В нем создаем машину с такими параметрами:
Вкладка «General»: задаем имя виртуальной машины и ее ID. В качестве ID можно использовать любое удобное число — оно применяется для обращения к серверу в консольных командах.

Вкладка «OS»: выбираем «Do not use any media».

Вкладка «System»: ставим чекбокс QEMU Agent для улучшения интеграции между Proxmox и гостевой ОС .

Вкладка «Disks»: удалите все диски — далее будет использоваться диск из образа.

Вкладка «CPU»: выставляем 1 ядро. Остальные параметры оставляем по умолчанию. Изменяйте их, только если уверены в своих действиях.

Вкладка «Memory»: задаем минимальные параметры.

Вкладка «Network»: выбираем интерфейс, который нужно использовать в виртуальной машине, например vmbr0.

Сохраняем, но не запускаем виртуальную машину. Запоминаем VMID, так как он потребуется дальше.

Добавление облачного диска к виртуальному серверу
На странице загрузок на сайте Ubuntu копируем ссылку на образ с архитектурой amd64 и расширением .img.

Далее нужно добавить эмулятор монитора к созданной виртуальной машине, так как он может отсутствовать в некоторых образах. Он необходим для работы консоли виртуальной машины в интерфейсе Proxmox.
Подключаемся к серверу Proxmox по SSH и выполняем команду ниже. После set в ней нужно указать VMID машины, которую создали:
qm set 100 --serial0 socket --vga serial0

Далее загружаем образ на сервер с помощью wget:
wget https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img
Привязываем образ диска к созданной машине:
qm disk import 100 jammy-server-cloudimg-amd64.img local-lvm
В нашем случае имя хранилища — local-lvm, у вас оно может быть другим.
После успешного импорта вы увидите уведомление:

В настройках виртуальной машины в разделе «Hardware» видим диск «Unused»:

Заходим в его настройки, ставим галочку «Advanсed», отмечаем чекбоксы «Discard» и «SSD emulation», нажимаем «Add».

В этом же разделе удаляем CD/DVD-устройство, оно больше не понадобится:

Добавим диск Cloud-Init. Для этого нажимаем «Add» в выпадающем списке выбираем «CloudInit Drive».

В его настройках выбираем место хранения.

Далее выберем диск, с которого будет загружаться система. Для этого переходим в раздел «Options» → «Boot Order».

Снимаем проставленные чекбоксы и выбираем диск, который привязали ранее.

Проверим, что машина корректно создалась. Для этого запускаем ее и открываем консоль кнопками «Start» и «Console» в правом верхнем углу.

В консоли дожидаемся приглашения авторизации. Если оно появилось, значит, загрузка прошла успешно. Консоль можно закрыть.

Создание шаблона из виртуального сервера
В Proxmox шаблон — это «заготовка» для виртуальной машины с уже заданными основными параметрами
Чтобы создать шаблон из этой виртуальной машины, в списке виртуальных машин нажмите на нее правой кнопкой мыши. В открывшемся меню выберите «Convert to template».

После создания шаблона значок виртуальной машины в меню изменится.
Теперь на основе этого шаблона мы можем создавать виртуальные машины с указанными параметрами в Cloud-Init.
Создание виртуального сервера из шаблона
Для примера создадим виртуальный сервер с пользователем Timeweb.
На шаблоне нажимаем правой кнопкой мыши и выбираем «Clone».

Задаем имя и выбираем режим «Full Clone», чтобы виртуальная машина не была зависима от шаблона.

Заходим в настройки новой машины, указываем нужные параметры CPU.

И RAM.

Для изменения размера диска выбираем его в списке, далее в меню «Disk Action» выбираем «Resize».

Далее указываем, сколько гигабайт нужно добавить к тем, которые уже прописаны в нашем шаблоне.
Скажем, если мы добавим 10 ГБ, то будет создан диск на 12,2 ГБ, так как в образе размер диска —2,2 ГБ.
Нажимаем «Resize disk».

Переходим в раздел «Cloud-Init». В нем указываем пользователя и задаем ему логин.

И пароль.

Если указать пользователя root и задать пароль, вы сможете подключаться под root с новым паролем. Это может быть удобно, если создание нового пользователя не требуется.
Также в Cloud-Init можно настроить следующие параметры:
- SSH public key: ключ SSH, который нужно будет добавить на сервер. По умолчанию в виртуальном сервере, созданном из этого образа, отключена возможность подключаться по SSH с паролем.
- Upgrade packages: значение
yesуказывает, что при создании сервера нужно обновить пакеты. - IP Config: здесь можно указать статический IP-адрес, что может быть удобно если у виртуальных машин планируете использовать разные внешние IP-адреса. Также можно использовать DHCP для получения динамического адреса.

После указания всех нужных параметров запускаем машину и переходим в консоль:

Авторизуемся под пользователем Timeweb и проверяем, что сервер был создан в нужной нам конфигурации.

Подготовили для вас выгодные тарифы на облачные серверы
Заключение
С помощью шаблонов мы можем быстро добавлять виртуальные машины с разными операционными системами и нужными конфигурациями, изменять в Cloud-Init параметры пользователя и настраивать сеть.
Кроме того, размеры облачных образов занимают значительно меньше места на диске. Например, облачный образ Ubuntu 22.04 весит всего 646 MБ, а ISO-образ — 2 ГБ.
Этот способ создания виртуальных машин особенно ценен, когда важны скорость, стабильность и предсказуемость результата: в тестовых средах, DevOps-инфраструктуре, при массовом развертывании однотипных сервисов.
А главное — он освобождает время, которое можно потратить не на бесконечные клики «Далее» в установщике, а на действительно важные задачи: развитие и оптимизацию инфраструктуры.
