Перейти к основному содержимому
Подготовить ISO-образ для работы с облачной платформой
Последнее изменение:

Подготовить ISO-образ для работы с облачной платформой

Если вы загрузили в хранилище образов ISO-образ с дистрибутивом операционной системы, мы рекомендуем сделать его полностью совместимым с облачной платформой Selectel. Из совместимого образа можно создавать облачные серверы, для которых будет доступна такая же функциональность, как у серверов из готовых образов.

к сведению

Это инструкция для образа Oracle Linux. Для других дистрибутивов могут отличаться утилиты, репозитории и расположение файлов.

  1. Загрузите ISO-образ в хранилище образов.
  2. Создайте облачный сервер из загруженного образа.
  3. Настройте облачный сервер.
  4. Создайте образ из загрузочного диска облачного сервера.

1. Загрузить ISO-образ в хранилище образов

Используйте инструкцию Загрузить и создать образ.

2. Создать облачный сервер из загруженного образа

Используйте инструкцию Создать облачный сервер.

Выберите в качестве источника загруженный образ, а в качестве загрузочного диска — сетевой диск.

3. Настроить облачный сервер

  1. Подключитесь к облачному серверу.

  2. Добавьте в файл selectel-openstack.repo репозитории OpenStack Selectel:

    cat <<EOF > /etc/yum.repos.d/selectel-openstack.repo
    [selectel-openstack]
    name=selectel-openstack
    baseurl=http://repo.os.selectel.org/rpm/centos/7/x86_64
    gpgcheck=1
    gpgkey=http://repo.os.selectel.org/selectel-openstack.key
    EOF
  3. Обновите список репозиториев для пакетного менеджера:

    yum update
  4. Установите пакеты:

    yum install crontab-randomizer \
    fstrim-blocks qemu-guest-agent \
    set-root-pw \
    cloud-init \
    cloud-utils-growpart \
    compat-openssl10
  5. Перейдите в директорию /etc/cloud/cloud.cfg.d/ для создания конфигурационных файлов cloud-init:

    cd /etc/cloud/cloud.cfg.d/
  6. Запретите создание пользователя ubuntu:

    cat <<EOF > 10_no_default_users.cfg
    users: []
    EOF
  7. Добавьте источники данных для cloud-init-datasources:

    cat <<EOF > 91-dib-cloud-init-datasources.cfg
    datasource_list: [ ConfigDrive, Ec2, None ]
    EOF
  8. Отключите предупреждение об использовании cloud-init и EC2:

    cat <<EOF > 92-ec2-datasource.cfg
    #cloud-config
    datasource:
    Ec2:
    strict_id: false
    EOF
  9. Добавьте настройки загрузки:

    cat <<EOF > 99_boot_routines.cfg
    bootcmd:
    - sed -i '/^;/d' /etc/resolv.conf
    EOF
  10. Запретите для cloud-init отключать EC2-метаданные:

    cat <<EOF > 99_enable_ec2.cfg
    disable_ec2_metadata: false
    EOF
  11. Добавьте настройки первой загрузки:

    cat <<EOF > 99_first_boot_routines.cfg
    runcmd:
    - sed -i '/NetworkManager/d' /etc/resolv.conf
    - sed -i '/^nameserver 10\./d' /etc/resolv.conf
    - sed -i '/^nameserver 192\./d' /etc/resolv.conf
    - sed -i '/^nameserver 172\./d' /etc/resolv.conf
    - sed -i '/^search/d' /etc/resolv.conf
    - set-root-pw 2> /dev/null
    - crontab-randomizer
    EOF
  12. Запретите отключение root-доступа через SSH:

    cat <<EOF > 99_keep_root_user.cfg
    disable_root: false
    EOF
  13. Измените таймзону:

    cat <<EOF > 99_location.cfg
    locale: en_US.UTF-8
    timezone: UTC
    EOF
  14. Добавьте разрешение аутентификации по паролю через SSH:

    cat <<EOF > 99_ssh_settings.cfg
    ssh_pwauth: true
    no_ssh_fingerprints: true
    ssh_deletekeys: true
    EOF
  15. Настройте автозапуск сервисов для применения изменений и корректной работы после перезагрузки сервера:

    systemctl enable cloud-init
    systemctl enable cloud-init.service
    systemctl enable cloud-config.service
    systemctl enable cloud-final.service
    systemctl enable qemu-guest-agent.service
    systemctl enable cockpit.socket
  16. Выполните аппаратную перезагрузку сервера.

  17. Повторно подключитесь к облачному серверу.

    Появится сообщение о том, что изменился идентификатор хоста. Это означает, что 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. Создайте образ из загрузочного диска облачного сервера

  1. Создайте образ из загрузочного диска облачного сервера.

  2. Откройте OpenStack CLI.

  3. Добавьте свойства для созданного образа:

    glance image-update --property x_sel_image_owner=Selectel <image>
    glance image-update --property hw_qemu_guest_agent=yes <image>

    Укажите <image> — ID или имя образа. Список можно посмотреть с помощью openstack image list --private

  4. Опционально: после создания образа из диска удалите облачный сервер.