Получение шаблонов Linux

Поскольку во всех гостевых ОС Linux по умолчанию предустановлен OpenSSH Server, необходимо только убедиться, что в шаблоне Linux установлен пакет cloud-init.

Самый простой способ получить шаблон Linux с установленным пакетом cloud-init — загрузить из официального репозитория или создать с помощью diskimage-builder. Либо можно создать шаблон Linux из существующего загрузочного тома.

Ограничения

  • Образ диска создается только с пользователем root, у которого нет ни пароля, ни SSH-ключей. Можно использовать методы user data и cloud-init для выполнения задач начальной конфигурации на ВМ, которые будут развернуты из этого образа, например для создания определенных учетных записей пользователей. Другие параметры для настройки ВМ во время загрузки см. в документации по cloud-init.

Чтобы создать шаблон Linux

  1. Установите пакет diskimage-builder:

    # yum install diskimage-builder
    
  2. Для гостевой ОС RHEL 7 загрузите облачный образ с клиентского портала Red Hat (требуется вход) и выполните следующую команду:

    # export DIB_LOCAL_IMAGE=<path_to_rhel7_image>
    
  3. Выполните команду disk-image-create, чтобы создать образ диска с установленным пакетом cloud-init для нужной гостевой системы Linux, например:

    # disk-image-create vm centos7 -t qcow2 -o centos7
    

    где:

    • centos7 — имя гостевой ОС. Может иметь одно из следующих значений: centos6, centos7, debian, rhel7 или ubuntu.

      По умолчанию при использовании варианта ubuntu будет создан образ диска для Ubuntu 16.04. Чтобы создать образ для Ubuntu 18.04, добавьте в команду DIB_RELEASE=bionic: DIB_RELEASE=bionic disk-image-create vm ubuntu -t qcow2 -o ubuntu18.

    • -o задает имя итогового файла образа диска.

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

    # vinfra service compute image create centos7-image --os-distro centos7 \
    --disk-format qcow2 --file centos7.qcow2
    

    где:

    • centos7-image — имя нового образа.
    • centos7 — дистрибутив ОС. Может иметь одно из следующих значений: centos6, centos7, debian9, rhel7, ubuntu16.04 и ubuntu18.04.
    • centos7.qcow2 — образ QCOW2, созданный на шаге 3.

Чтобы развернуть виртуальную машину из загруженного шаблона

  1. Создайте файл конфигурации user-data с нужной учетной записью пользователя:

    # cat <<EOF > user-data
    #cloud-config
    user: myuser
    password: password
    chpasswd: {expire: False}
    ssh_pwauth: True
    EOF
    

    где myuser — имя пользователя, а password — пароль для учетной записи.

  2. Запустите развертывание ВМ из образа диска, используя файл конфигурации в качестве данных пользователя:

    # vinfra service compute server create centos7-vm --flavor medium \
    --network public --user-data user-data --volume source=image,\
    id=centos7-image,size=10

    где:

    • centos7-vm — имя новой ВМ.
    • user-data — файл конфигурации, созданный на шаге 1.
    • centos7-image — образ, добавленный в вычислительный кластер.