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-инфраструктуре, при массовом развертывании однотипных сервисов.
А главное — он освобождает время, которое можно потратить не на бесконечные клики «Далее» в установщике, а на действительно важные задачи: развитие и оптимизацию инфраструктуры.