С помощью этого руководства вы подготовите файл образа виртуальной машины с операционной системой Linux, создадите пользовательский образ из этого файла и развернете виртуальную машину.
В руководстве для подготовки образа используется локальный компьютер с установленной ОС Ubuntu.
Вы будете использовать следующие сервисы:
«Образы» — сервис для управления образами, из которых развертываются виртуальные машины.
«Виртуальные машины» — сервис, в рамках которого предоставляется виртуальная машина, которая будет развернута из созданного образа.
Шаги:
Зарегистрируйтесь в личном кабинете Cloud.ru.
Если вы уже зарегистрированы, войдите под своей учетной записью.
Скачайте образ с операционной системой Linux.
В руководстве используется образ noble-server-cloudimg-amd64.img с ОС Ubuntu 24.04 LTS.
На этом шаге вы конвертируете файл образа в нужный формат.
Установите qemu-utils — запустите терминал в директории с файлом образа и выполните команду:
sudo apt install qemu-utils
Конвертируйте образ в формат RAW:
qemu-img convert -O raw noble-server-cloudimg-amd64.img noble-server-cloudimg-amd64.raw
Посмотрите информацию об образе:
qemu-img info noble-server-cloudimg-amd64.raw
Результат:
image: noble-server-cloudimg-amd64.rawfile format: rawvirtual size: 3.5 GiB (3758096384 bytes)disk size: 1.73 GiB
На этом шаге вы проверите, что образ соответствует требованиям платформы Evolution и подготовите его к загрузке в облако.
Проверьте наличие загрузочного раздела:
fdisk -l noble-server-cloudimg-amd64.raw | grep -E "Boot|EFI|BIOS boot"
Результат:
noble-server-cloudimg-amd64.raw14 2048 10239 8192 4M BIOS bootnoble-server-cloudimg-amd64.raw15 10240 227327 217088 106M EFI System
Проверьте наличие необходимых пакетов.
Подключите образ как блочное устройство через qemu-nbd:
sudo modprobe nbd max_part=8sudo qemu-nbd -c /dev/nbd0 noble-server-cloudimg-amd64.rawsudo fdisk -l /dev/nbd0
Результат:
Disk /dev/nbd0: 3.5 GiB, 3758096384 bytes, 7340032 sectorsUnits: sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 131072 bytesDisklabel type: gptDisk identifier: B3A7DDD4-9111-4D47-AF25-7BDBE1C23AF8Device Start End Sectors Size Type/dev/nbd0p1 2099200 7339998 5240799 2.5G Linux filesystem/dev/nbd0p14 2048 10239 8192 4M BIOS boot/dev/nbd0p15 10240 227327 217088 106M EFI System/dev/nbd0p16 227328 2097152 1869825 913M Linux extended boot
Смонтируйте корневой раздел:
sudo mkdir -p /mnt/imgsudo mount -o rw /dev/nbd0p1 /mnt/img
Проверьте наличие cloud-init и qemu-guest-agent:
ls /mnt/img/usr/bin/cloud-init /mnt/img/usr/sbin/qemu-ga 2>/dev/null
Результат:
/mnt/img/usr/bin/cloud-init /mnt/img/usr/sbin/qemu-ga
Чтобы выполнять команды внутри образа, подготовьте chroot-окружение:
sudo mount --bind /dev /mnt/img/devsudo mount --bind /dev/pts /mnt/img/dev/ptssudo mount --bind /proc /mnt/img/procsudo mount --bind /sys /mnt/img/syssudo mount --bind /run /mnt/img/runsudo cp /etc/resolv.conf /mnt/img/etc/resolv.confsudo chroot /mnt/img /bin/bash
Если в образе нет нужных пакетов, установите их:
apt updateapt install -y cloud-init qemu-guest-agent
Добавьте конфигурацию для cloud-init:
cat > /etc/cloud/cloud.cfg.d/90_evolution.cfg <<'EOF'datasource:OpenStack:metadata_urls: ["http://169.254.169.254"]max_wait: 60timeout: 5retries: 5EOF
Где http://169.254.169.254 — адрес внутреннего сервера метаданных.
Включите запуск cloud-init при каждой загрузке:
dpkg-reconfigure -f noninteractive cloud-initsystemctl enable cloud-init-local.servicesystemctl enable cloud-init.servicesystemctl enable cloud-config.servicesystemctl enable cloud-final.service
Чтобы при каждом создании ВМ из образа она заново получала метаданные, удалите из образа все признаки уже работавшей системы.
Удалите уникальные данные:
# Reset machine-idtruncate -s 0 /etc/machine-idrm -f /var/lib/dbus/machine-id# Clean ssh host-keysrm -f /etc/ssh/ssh_host_*# Clean logsrm -rf /var/log/*.gz /var/log/*.[0-9] /var/log/**/*.gz> /var/log/syslog> /var/log/wtmp> /var/log/lastlog> /var/log/auth.log> /var/log/kern.log> /var/log/messages> /var/log/debugrm -rf /tmp/* /var/tmp/*rm -rf /var/cache/apt/archives/*.debrm -rf /var/lib/cloud/*rm -rf /var/lib/systemd/random-seed# Delete history bashrm -f /root/.bash_historyfind /home -name ".bash_history" -delete 2>/dev/nullhistory -c# Reset hostnametruncate -s 0 /etc/hostnameexit
Размонтируйте корневой раздел образа:
sudo umount /mnt/img/syssudo umount /mnt/img/procsudo umount /mnt/img/dev/ptssudo umount /mnt/img/devsudo umount /mnt/img/runsudo rm -f /mnt/img/etc/resolv.confsudo umount /mnt/imgsudo qemu-nbd -d /dev/nbd0
На этом шаге вы создадите пользовательский образ в облаке Evolution, используя подготовленный файл образа.
На верхней панели слева нажмите и выберите Инфраструктура → Образы.
Справа вверху нажмите Создать образ.
Укажите минимальную конфигурацию виртуальной машины, которую можно развернуть из образа:
vCPU, шт — 1.
RAM, ГБ — 1.
Диск, ГБ — 10.
Нажмите Создать шаблон cloud_init и вставьте конфигурацию:
#cloud-configgroups:- admingroup:- root- sys- cloud-usershostname: {{ hostname }}users:- name: {{ name }}groups: userslock_passwd: falseprimary_group: {{ name }}sudo: ALL=(ALL) NOPASSWD:ALLshell: /bin/bash{% if linux_password %}passwd: {{ linux_password }}{% endif %}{% if public_key %}ssh_authorized_keys:- {{ public_key }}{% endif %}runcmd:- sudo systemctl enable qemu-guest-agent- sudo systemctl start qemu-guest-agent
Нажмите Сохранить.
Укажите название образа — ubuntu-custom.
Нажмите Создать.
Откроется страница с информацией о созданном образе в статусе «Ожидает загрузки».
В поле Источник нажмите Загрузить образ и выберите файл noble-server-cloudimg-amd64.raw.
После выбора файла начнется загрузка, которая может занять несколько минут. Не закрывайте страницу браузера до ее завершения.
На этом шаге вы развернете в облаке Cloud.ru виртуальную машину с ОС Linux из пользовательского образа и подключитесь к ней.
Создайте виртуальную машину со следующими параметрами:
Название — ubuntu-server.
Зона доступности — ru.AZ-1.
Образ — на вкладке Пользовательские выберите образ ubuntu-custom.
Гарантированная доля vCPU — 10%.
vCPU, шт — 1.
RAM, ГБ — 1.
Загрузочный диск — укажите размер 10 ГБ.
Сетевой интерфейс — выберите тип Подсеть с публичным IP.
Логин — cloud-user.
Пароль — задайте пароль пользователя.
Подключитесь к созданной ВМ.
Выберите ВМ ubuntu-server в списке.
Перейдите на вкладку Серийная консоль.
Дождитесь загрузки системы.
Введите логин и пароль пользователя, указанные при создании ВМ.
Вы научились подготавливать образы с ОС Linux, загружать их в облако Cloud.ru и разворачивать из них виртуальные машины.