Создание образа image-based приложенияBeta

Чтобы загрузить ваше image-based приложение на Marketplace облачной платформы, сначала необходимо подготовить образ ВМ, на которой будет установлен инстанс вашего приложения, и загрузить его на платформу VK Cloud. Ниже показано, как это сделать с помощью Packer или используя возможности личного кабинета VK Cloud.

Рекомендуемый способ создания образа — с помощью Packer.

  1. Установите Packer:

    1. Скачайте Packer с официального зеркала VK Cloud.
    2. Распакуйте архив и укажите путь к распакованному файлу в переменной среды Path.
    3. Выполните команду packer, чтобы убедиться в успешной установке Packer.

    Подробная инструкция приведена в официальной документации Packer.

  2. Установите OpenStack CLI и пройдите аутентификацию в проекте.

  3. Скачайте базовый образ ОС, поддерживающий работу с облачными платформами.

    ОС должна удовлетворять требованиям к образу ВМ сервиса.

    На официальном сайте OpenStack размещены ссылки на образы некоторых ОС, поддерживающих работу с облачными платформами.

  4. Конвертируйте базовый образ в формат RAW:

    1. Установите утилиту qemu-img на локальный компьютер:

      sudo yum install qemu-img
    2. Запустите конвертацию файла с помощью команды:

      qemu-img convert -f qcow2 -O raw <ИМЯ_ИСХОДНОГО_ОБРАЗА> <ИМЯ_ОБРАЗА>

      Здесь:

      • <ИМЯ_ИСХОДНОГО_ОБРАЗА> — имя исходного базового образа. Например, alt-p9-cloud-x86_64.qcow2.
      • <ИМЯ_ОБРАЗА> — имя базового образа в формате RAW. Например, alt-p9-cloud-x86_64.raw.
  5. Загрузите базовый образ в формате RAW в VK Cloud:

    openstack image create --private --container-format bare --disk-format raw --property store=s3 --file <ПУТЬ> <ИМЯ_ОБРАЗА>

    Здесь:

    • <ПУТЬ> — путь к базовому образу.
    • <ИМЯ_ОБРАЗА> — имя базового образа в формате RAW.

    Подробнее в разделе Импорт образа.

  6. Создайте конфигурационный packer-файл:

    1. В переменные окружения запишите ID сети и ID базового образа:

      export NETWORK_ID=<ID_СЕТИ>export SOURCE_IMAGE=<ID_ОБРАЗА>

      Здесь:

      • <ID_СЕТИ> — ID сети. Значение можно найти в личном кабинете VK Cloud на вкладке Виртуальные сетиСети.
      • <ID_ОБРАЗА> — ID базового образа. Значение можно найти в личном кабинете VK Cloud на вкладке Облачные вычисленияОбразы. Если используется базовый образ, доступный в VK Cloud, найдите его ID в разделе Аргумент target_os.
    2. Создайте packer-файл с именем <ИМЯ_ОС>.pkr.hcl. Например, altlinux.pkr.hcl.

    3. В файле опишите конфигурацию ВМ, на базе которой будет создан образ. Описание синтаксиса конфигурационного файла — на официальном сайте Packer.

      Имя пользователя ОС, которое указывается в аргументах ssh_username и user конфигурации, зависит от операционной системы. Список имен приведен в разделе Подключение к ВМ Linux.

      Имя группы безопасности по умолчанию, которое указывается в аргументе security_groups конфигурации, зависит от типа SDN:

      • default — в проекте VK Cloud на базе OpenStack Neutron.
      • default-sprut — в проекте VK Cloud на базе Sprut.

      Список доступных групп безопасности можно получить с помощью команды:

      openstack security group list
    4. Проверьте созданную конфигурацию:

      packer validate <ИМЯ_ФАЙЛА>

      Здесь <ИМЯ_ФАЙЛА> — имя packer-файла.

  7. Создайте образ ВМ сервиса в VK Cloud:

    1. Запустите создание образа ВМ сервиса:

      packer build <ИМЯ_ФАЙЛА>

      Здесь <ИМЯ_ФАЙЛА> — имя packer-файла.

      При успешном создании образа ВМ сервиса будет выведено сообщение с ID образа. Пример сообщения:

      ==> Builds finished. The artifacts of successful builds are:--> openstack.altlinux: An image was created: c6320138-035f-40d8-XXXX-e814edb2ce5f

      Здесь c6320138-035f-40d8-XXXX-e814edb2ce5f — ID образа ВМ сервиса.

    2. В личном кабинете VK Cloud перейдите на вкладку Облачные вычисленияОбразы и убедитесь, что в списке образов появился образ ВМ сервиса.