Загрузка собственного образа в каталог образов Compute
Вы можете загрузить собственный образ в формате qcow2 или raw в каталог образов Compute и использовать его для создания ВМ.
Примечание
Поддерживаются образы только с операционными системами семейства Linux. Рекомендованный формат образов — qcow2. Используйте формат raw только в сценариях, в которых qcow2 не поддерживается. Образы в форматах raw, qcow,vmdk,vhd, vhdx и других форматах, поддерживаемых QEMU, можно конвертировать в qcow2 с помощью утилиты qemu-img.
Для загрузки образа:
- Подготовьте окружение для работы с образами.
- Подготовьте образ для использования в MWS Cloud.
- Установите и настройте утилиту AWS CLI. С ее помощью образ будет загружен с локального компьютера или ВМ в бакет Object Storage.
- Загрузите образ сначала в бакет Object Storage, после чего из бакета в каталог образов Compute.
В результате образ будет доступен в качестве источника при создании новой ВМ.
1. Подготовьте окружение для работы с образами
В этом руководстве вам понадобится компьютер с ОС Linux.
Установите обновления для уже установленных пакетов:
bashsudo apt update && sudo apt upgradeУстановите систему виртуализации QEMU:
bashsudo apt-get install qemu-systemУстановите набор утилит
libguestfs-tools. В их составе есть утилитаvirt-filesystems, которая позволяет просматривать файловые системы внутри виртуальных машин:bashsudo apt install libguestfs-toolsДобавьте текущего пользователя в группу
kvm. Это требуется для корректной работы утилитыvirt-filesystems:bashsudo usermod -aG kvm $USERУстановите утилиту
unzip:bashsudo apt install unzip
2. Подготовьте образ для использования в MWS Cloud Platform
Примечание
В этом руководстве в качестве примера используется образ jammy-server-cloudimg-amd64 — официальный образ Ubuntu 22.04 LTS (Jammy Jellyfish) для серверов, оптимизированный под работу в облачных платформах.
Убедитесь, что образ соответствует требованиям для работы в MWS Cloud Platform.
Список требований
- Образ имеет формат, который поддерживается в QEMU.
- Образ поддерживает интерфейс UEFI.
- Для загрузочного диска используется GPT-разметка с GUID-таблицей разделов.
- Установлены драйверы
virtio-net,virtio-blk,virtio-scsiиvirtio-pci. Большинство современных дистрибутивов Linux содержат эти драйверы по умолчанию. - В настройках системного файрвола открыт необходимый минимум портов для работы пользовательских приложений, а также порт для доступа по SSH.
Дополнительно в системе должен быть установлен пакет
cloud-init.Для поддержки символических ссылок на диски (Device Name) в образ нужно добавить udev-правила. Для этого создайте на локальном диске файл
80-disk-symlinks.rulesи добавьте в него следующие строки:bash# Name the attached disks as the specified by deviceName. ACTION!="add|change", GOTO="mws_disk_naming_end" SUBSYSTEM!="block", GOTO="mws_disk_naming_end" # SCSI naming KERNEL=="sd*|vd*", IMPORT{program}="scsi_id --export --whitelisted -d $tempnode" # Don't symlink if it's not mws devices. This is a fail-safe against these rules # running outside of MWS Cloud Platform. KERNEL=="sd*|vd*", ENV{ID_VENDOR}!="MWS", GOTO="mws_disk_naming_end" # Symlinks KERNEL=="sd*|vd*", ENV{DEVTYPE}=="disk", SYMLINK+="disk/by-id/$env{ID_SERIAL_SHORT}" KERNEL=="sd*|vd*", ENV{DEVTYPE}=="partition", SYMLINK+="disk/by-id/$env{ID_SERIAL_SHORT}-part%n" LABEL="mws_disk_naming_end"Загрузите файл с правилами в образ:
3. Настройте утилиту AWS CLI
Для загрузки образа в облако установите утилиту AWS CLI:
Создайте сервисный аккаунт с правами
storage.bucket.editor. Этот сервисный аккаунт будет использоваться для работы AWS CLI.Для сервисного аккаунта создайте HMAC-ключ. Сохраните обе части HMAC-ключа —
Access keyиSecret key. Они понадобятся вам далее.Скачайте и установите утилиту AWS CLI:
Примечание
Поддерживается работа с AWS CLI до версии 2.22.35 включительно.
bashcurl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64-2.2.35.zip" -o "awscliv.zip" && \ unzip awscliv.zip && \ sudo ./aws/installНастройте AWS CLI:
bashaws configureУкажите следующие параметры:
- AWS Access Key ID — значение
Access keyиз HMAC-ключа (пример —_Ukpnpw3RiCx3iuPhn-t); - AWS Secret Access Key — значение
Secret keyиз HMAC-ключа (пример —3LIK2LbwYqER7oGr3cX4WSC31YN83yZnDgcXyjewX); - Default region name —
ru-central1; - Default output format —
text.
4. Загрузите образ в бакет
Сначала образ нужно загрузить в бакет Object Storage, после чего — из бакета в каталог образов Compute.
Создайте бакет Object Storage, в который будете загружать образ. В этом руководстве для примера используется имя бакета
test-bucket:bashaws s3 mb s3://test-bucket --endpoint-url https://storage.mwsapis.ruРезультат успешного создания бакета:
bashmake_bucket: test-bucketЗагрузите образ в бакет:
Дождитесь окончания загрузки.
5. Добавьте образ в каталог образов Compute
Образ jammy-server-cloudimg-amd64 сейчас загружен в бакет в виде файла. Чтобы использовать образ в качестве источника при создании новых ВМ, добавьте его в каталог образов Compute.
Добавить образ можно двумя способами:
- С помощью утилит AWS CLI и MWS CLI. При добавлении образа для него генерируется presigned URL — временная ссылка, которая предоставляет ограниченный доступ к образу без необходимости настраивать политики доступа бакета.
- С помощью веб-консоли и настройки политики доступа бакета.
Образ будет загружен в каталог образов Compute. Вы сможете использовать его для создания ВМ.