Подготовить ISO-образ для работы с облачной платформой
Если вы загрузили в хранилище образов ISO-образ с дистрибутивом операционной системы, мы рекомендуем сделать его полностью совместимым с облачной платформой Servercore. Из совместимого образа можно создавать облачные серверы, для которых будет доступна такая же функциональность, как у серверов из готовых образов.
Подготовить образ Windows
- Подготовьте ISO-образ локально.
- Загрузите ISO-образ в хранилище образов.
- Модифицируйте свойства образа Windows.
1. Подготовить ISO-образ локально
-
На локальном компьютере распакуйте архив с ISO-образом в отдельную директорию архиватором, например
7-zip,WinRAR,tar. -
Скачайте VirtiO-драйверы в виде ISO-образа из репозитория Fedora People.
-
Создайте директорию Drivers.
-
Распакуйте в директорию Drivers ISO-образ с VirtiO-драйверами архиватором, например
7-zip,WinRAR,UltraISO. -
Перенесите директорию Drivers с VirtiO-драйверами в директорию ISO-образа Windows, который вы распаковали на шаге 1.
-
Установите утилиту DISM++ для управления образами.
-
Откройте DISM++.
-
Соберите установочный образ, для этого перейдите в раздел Toolkit и выберите ISO Maker.
2. Загрузить ISO-образ в хранилище образов
Используйте подраздел Загрузить и создать образ из файла инструкции Загрузить и создать образ.
Укажите:
- файл — образ, который подготовили на этапе 1;
- ОС — Windows;
- формат образа —
iso; - формат контейнера —
bare.
3. Модифицировать свойства образа
-
Выведите ID доступных образов:
openstack image listВ ответе появится список образов. Скопируйте ID образа, который вы загрузили на этапе 2.
-
Опционально: посмотрите свойства образа:
openstack image show -
Добавьте нужные свойства:
openstack image set \--property hw_disk_bus=scsi \--property hw_firmware_type=uefi \--property hw_qemu_guest_agent=yes \--property hw_scsi_model=virtio-scsi \--property os_type=windows \--property x_sel_image_agent_type=cloudbase-init \--property x_sel_image_os_arch=amd64 \--property x_sel_image_os_dist=windows \--property x_sel_image_os_type=windows \--property x_sel_image_type=master \--property x_sel_kpti_patch=true \<image_id>Укажите
<image_id>— ID образа, который вы скопировали на шаге 2.
Подготовить образ Linux
1. Загрузить ISO-образ в хранилище образов
Используйте инструкцию Загрузить и создать образ.
2. Создать облачный сервер из загруженного образа
Используйте инструкцию Создать облачный сервер.
Выберите в качестве источника загруженный образ, а в качестве загрузочного диска — сетевой диск.
3. Настроить облачный сервер
Ubuntu
Debian
Oracle
CentOS
Rocky Linux
AlmaLinux
Fedora
Это инструкция для образа Ubuntu 22.04.
-
Добавьте в файл
sources.listрепозитории OpenStack Servercore:tee /etc/apt/sources.list <<EOFdeb [arch=all signed-by=/usr/share/keyrings/openstack.gpg] https://mirror.servercore.com/3rd-party/cloud-init-deb/jammy/ jammy mainEOF -
Обновите список репозиториев для пакетного менеджера:
apt update -
Установите пакеты:
apt install -y cloud-init \cloud-utils \growpart \qemu-guest-agent \set-root-pw \crontab-randomizer \fstrim-blocks -
Перейдите в директорию
/etc/cloud/cloud.cfg.d/для создания конфигурационных файлов cloud-init:cd /etc/cloud/cloud.cfg.d/ -
Запретите создание стандартных пользователей:
tee /etc/cloud/cloud.cfg.d/10_no_default_users.cfg <<EOFusers: []EOF -
Добавьте источники данных для cloud-init-datasources:
tee /etc/cloud/cloud.cfg.d/91-cloud-init-datasources.cfg <<EOFdatasource_list: [ OpenStack, ConfigDrive, EC2, None ]EOF -
Запретите отключение root-доступа через SSH:
tee /etc/cloud/cloud.cfg.d/99_keep_root_user.cfg <<EOFdisable_root: falseEOF -
Измените таймзону:
tee /etc/cloud/cloud.cfg.d/99_locale_timezone.cfg <<EOFlocale: en_US.UTF-8timezone: UTCEOF -
Добавьте удаление SSH-отпечатков хоста в логах и удаление ключей для корректной работы SSH в облачных серверах из образа:
tee /etc/cloud/cloud.cfg.d/99_ssh_settings.cfg <<EOFno_ssh_fingerprints: truessh_deletekeys: trueEOF -
Опционально: добавьте разрешение аутентификации по паролю через SSH:
tee /etc/cloud/cloud.cfg.d/99_ssh_settings.cfg <<EOFssh_pwauth: trueEOF -
Настройте автозапуск сервисов для применения изменений и корректной работы после перезагрузки сервера:
systemctl enable cloud-initsystemctl enable qemu-guest-agentsystemctl enable cloud-finalsystemctl enable cloud-init-localsystemctl enable cloud-config -
Повторно подключитесь к облачному серверу.
Появится сообщение о том, что изменился идентификатор хоста. Это означает, что cloud-init успешно работает при загрузке операционной системы:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!Someone could be eavesdropping on you right now (man-in-the-middle attack)!It is also possible that a host key has just been changed.
4. Создайте образ из загрузочного диска облачного сервера
-
Добавьте свойства для созданного образа:
openstack image set --property x_sel_image_owner=Servercore \--property hw_qemu_guest_agent=yes \--property x_sel_image_os_dist=<distribution_name> \--property x_sel_image_os_type=linux \--property x_sel_image_os_arch=amd64 \<image>Укажите:
--property hw_qemu_guest_agent=yes— свойство отвечает за управление питанием облачного сервера и корректную работу подсистемы сбора и отображения метрик в панели управеления;<distribution_name>— название ОС облачного сервера, который вы настроили на этапе 3. Доступные значения:ubuntu,debian,oraclelinux,centos,rocky,almalinuxиfedora.<image>— ID или имя образа. Список можно посмотреть с помощьюopenstack image list --private
-
Опционально: после создания образа из диска удалите облачный сервер.