Перейти к основному содержимому
  1. Статьи/

Установка и настройка Cloud-Init образа в Proxmox

·540 слов·3 минут· loading · loading · ·
Proxmox Cloud-Init
Stilicho2011
Автор
Stilicho2011
Site owner
Автоматизация в Proxmox - This article is part of a series.
Part : This Article

Что такое Cloud-Init и зачем он нужен?
#

Cloud-Init — это инструмент автоматизации начальной настройки виртуальных машин. Он позволяет автоматически конфигурировать:

  • имя хоста,
  • сетевые интерфейсы,
  • пользователей и пароли,
  • SSH-ключи,
  • запуск скриптов при первом старте.

В сочетании с Proxmox VE, Cloud-Init помогает быстро разворачивать однотипные ВМ с минимальными ручными действиями. Особенно полезен в homelab-средах, где важна скорость и воспроизводимость развертывания.


Задачи, решаемые с помощью Cloud-Init образов
#

  1. Автоматизация. Убирает необходимость ручной настройки каждой новой ВМ.
  2. Унификация. Все машины разворачиваются из одного шаблона по стандарту.
  3. Безопасность. Можно сразу задать SSH-ключи и отключить root-пароль.
  4. Масштабируемость. Идеально для развёртывания десятков ВМ в кластере. Конечно дома такое вряд ли пригодится, но, если на работе вам это нужно, можно потренироваться на кошках.
  5. Совместимость с CI/CD. Можно использовать образы для автоматического тестирования и доставки инфраструктуры. Но, как я сказал выше, для домашнего использования - это скорее тестовый полигон.

В Proxmox VE 8 Cloud-Init интегрирован на уровне GUI и CLI, что значительно упрощает работу.

Как установить Cloud-Init образ в Proxmox
#

В видеоролике я показываю, как это все сделать с помощью графического интерфейса. Лично я считаю, что это намного удобнее, но ниже я привожу инструкцию в том виде, как это указано в документации на сайте Proxmox. Инструкция на сайте рабочая, но несколько устаревшая. Там в качестве примера используется образ Убунту из далекого 2016 года.

Шаг 1. Скачайте официальный Cloud-Init образ
#

Перейдите на cloud-images.ubuntu.com или аналогичный ресурс. Например:

wget https://cloud-images.ubuntu.com/jammy/current/noble-server-cloudimg-amd64.img

Шаг 2. Импортируйте образ в Proxmox
#

# create a new VM with VirtIO SCSI controller
qm create 9000 --memory 2048 --net0 virtio,bridge=vmbr0 --scsihw virtio-scsi-pci
# import the downloaded disk to the local-lvm storage, attaching it as a SCSI drive
qm set 9000 --scsi0 local-lvm:0,import-from=/path/to/noble-server-cloudimg-amd64.img

Шаг 3 Добавляем Cloud-Init образ как CD-ROM drive
#

Следующий шаг — настроить привод CD-ROM, который будет использоваться для установки Cloud-Init на виртуальную машину.

qm set 9000 --ide2 local-lvm:cloudinit

Чтобы иметь возможность загружаться напрямую с образа Cloud-Init, установите параметр загрузки order=scsi0, чтобы разрешить BIOS загрузку только с этого диска. Это ускорит загрузку, поскольку BIOS виртуальной машины пропускает проверку наличия загрузочного CD-ROM.

qm set 9000 --boot order=scsi0

Для многих образов Cloud-Init требуется настроить serial консоль и использовать её в качестве дисплея. Если эта конфигурация не подходит для конкретного образа, вернитесь к дисплею по умолчанию.

qm set 9000 --serial0 socket --vga serial0

Ну и последним шагом конвертируем нашу виртуальную машину в шаблон

qm template 9000

Все, - шаблон готов. Дальше уже вы спокойно можете создавать full клоны из этого шаблона и спокойно с ними работать.

Особенности сети в Proxmox VE 8
#

Proxmox VE 8 использует systemd-networkd, поэтому важно корректно задать сетевые параметры:

Если оставить DHCP, Cloud-Init автоматически получит IP.

Для статического IP заполните поля IP Address, Gateway, DNS на вкладке Cloud-Init.

Команды, которые использовались в ролике
#

Скачиваем образ

wget https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img

Переименовываем образ

mv noble-server-cloudimg-amd64.img noble-server-cloudimg-amd64.qcow2

Устанавливаем serial консоль в нужную нам виртуальную машину

qm set 700 --serial0 socket --vga serial0

Укажем рабочий объем cloudinit диска виртуальной машины

qemu-img resize noble-server-cloudimg-amd64.qcow2 32G

Импортируем cloudinit образ в виртуальную машину

qm disk import 700 noble-server-cloudimg-amd64.qcow2 local

Заключение
#

Установка Cloud-Init образа в Proxmox VE значительно упрощает развертывание инфраструктуры. Правильная подготовка образа и настройка Cloud-Init позволяют полностью автоматизировать процесс конфигурации виртуальных машин, что особенно актуально для DevOps и корпоративных окружений, но конечно может использоваться и в homelab.

Автоматизация в Proxmox - This article is part of a series.
Part : This Article