Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Cloud Marketplace
    • Начало работы
      • Профиль партнера
      • Продукт
      • Версия
      • Тариф
      • Подписка
        • Создание образа продукта на базе Linux
        • Создание продукта для Managed Service for Kubernetes
      • Тарификация продуктов на основе метрик издателя
      • Пробный период
    • Управление доступом
    • Начало работы
    • Управление доступом
    • Аудитные логи Audit Trails

В этой статье:

  • Создать образ
  • Требования к образу
  • Проверить образ
  1. Партнерам
  2. Концепции
  3. Требования к продуктам Marketplace
  4. Создание образа продукта на базе Linux

Создание образа продукта на базе Linux для загрузки в Cloud Marketplace

Статья создана
Yandex Cloud
Обновлена 26 марта 2025 г.
  • Создать образ
  • Требования к образу
  • Проверить образ

Чтобы добавить в Marketplace продукт для Yandex Compute Cloud, нужно загрузить образ в Yandex Cloud. Продукты могут быть созданы на базе ОС Linux. Этот раздел поможет создать образ на базе ОС Linux.

Если вы хотите добавить продукт для Yandex Managed Service for Kubernetes, воспользуйтесь соответствующей инструкцией.

Создать образСоздать образ

Образы продуктов, размещаемых в Marketplace, должны соответствовать требованиям.

Если у вас нет образа ВМ, создайте его:

  • с помощью Packer. Тогда образ автоматически загрузится в Compute Cloud.
    Рекомендации по созданию образа:
    • В качестве базового используйте образ из публичного каталога Yandex Cloud.
    • Посмотрите примеры packer-рецептов.
    • Автоматизируйте сборку образов с помощью Jenkins.
  • используя другие удобные для вас инструменты. Тогда вам потребуется самостоятельно загрузить образ в Compute Cloud.

Поддерживаемые форматы: Qcow2, VMDK, RAW и VHD.

Требования к образуТребования к образу

Для образов загрузочного диска должны выполняться следующие требования:

  • Установлены драйверы virtio-net, virtio-blk и virtio-pci. Если вы собираетесь подключать к виртуальной машине файловые хранилища, также должен быть установлен драйвер virtiofs. См. инструкцию.
  • Терминал ttyS0 (порт COM1) настроен в качестве серийной консоли. См. инструкцию.
  • Сетевой интерфейс корректно запускается при старте ВМ и получает IP-адрес по DHCP.
  • Пакет cloud-init установлен и настроен для работы с нашим сервисом метаданных. Установить пакет для CentOS можно с помощью команды sudo yum install cloud-init, для Debian или Ubuntu — sudo apt update && sudo apt install -y cloud-init.
  • Если образ создан на основе Amazon Machine Image (AMI), в настройках cloud-init отключена проверка облачной платформы, на которой запускается ВМ. См. инструкцию.
  • В настройках системного файрвола открыт необходимый минимум портов для работы ваших приложений, а также порт для доступа по SSH (по умолчанию это порт 22 TCP).
  • SSH-сервер запускается автоматически при старте ВМ.
  • Сервисы с вашим приложением устойчивы к перезагрузке ВМ.
  • Для загрузочного диска используется MBR-разбивка.
  • Диск смонтирован по UUID, а не по имени.
  • Файловая система не зашифрована.

Инструкции по настройке ОС для соответствия требованиям см. в разделе Подготовить свой образ диска.

Чтобы образ можно было использовать для продукта в Marketplace, также выполните следующие действия:

  1. Очистите:

    • директории /tmp, /var/tmp, /var/log;
    • кеши пакетного менеджера;
    • .bash_history всех пользователей;
    • данные о ранее полученных конфигурациях по DHCP (dhcp.leases, dhcp.log);
    • файл /etc/machine-id.
  2. Убедитесь, что:

    • в образе нет системных пользователей, кроме нужных приложениям.

    • доступ через SSH по паролю запрещен для всех пользователей и возможен только по ключу, который получен из сервиса метаданных.

    • в образе нет заранее сгенерированных SSH-ключей и паролей.

      Важно

      Пароли приложений должны генерироваться при старте ВМ, чтобы пользователь смог изменить их при первом входе через серийную консоль или SSH.

    • в файле /etc/sudoers* не настроены лишние привилегии для пользователей.

  3. Примените дополнительные рекомендации по настройке образов для Marketplace:

    • в файле конфигурации /etc/fstab отсутствуют строки, подключающие swap.

Проверить образПроверить образ

Вы можете выполнить очистку и необходимые проверки системы помощью скрипта yc-image-cleanup.sh.

Скрипт yc-image-cleanup.sh нужно запускать внутри образа под пользователем root.

Скрипт yc-image-cleanup.sh не проверяет образ продукта на соответствие всем требованиям и совместим не со всеми дистрибутивами. Перед загрузкой образа в Marketplace вам потребуется самостоятельно провести дополнительные проверки. Чтобы узнать, поддерживает ли yc-image-cleanup.sh ваш дистрибутив, запустите скрипт с ключом -o. Для поддерживаемых дистрибутивов скрипт выводит название и версию дистрибутива и определяет пакетный менеджер. Если дистрибутив не поддерживается, в результате появится строка Unsupported OS/distribution; can't determine package manager type.

Чтобы очистить ВМ перед созданием образа из нее, выполните команду:

./yc-image-cleanup.sh -c

Важно

Команда очистки удаляет некоторые файлы и директории. Перед ее выполнением убедитесь, что у вас есть резервные копии важных данных.

Перед очисткой ВМ вы можете задать переменную окружения YCCLEANUP_SYS_USER, указав в ней имя системного пользователя, которого в процессе очистки необходимо удалить вместе с домашним каталогом. Например, в Ubuntu системный пользователь ubuntu, в CentOS — centos. В некоторых случаях системным пользователем может быть cloud-user или какой-либо другой. В переменной YCCLEANUP_SYS_USER можно задать даже пользователя, исполняющего скрипт. В этом случае будет выведено сообщение об ошибке, но пользователь всё равно будет удалён. Если переменная YCCLEANUP_SYS_USER не задана, никакой пользователь удалён не будет.

Чтобы проверить образ на соответствие части требований, выполните команду:

./yc-image-cleanup.sh -d

Чтобы проверить ВМ, которую создали из образа, выполните команду:

./yc-image-cleanup.sh -t

Если дизайн вашей системы не позволяет провести какую-либо проверку при запуске с ключом -t, эту проверку можно отключить. Список отключаемых проверок передается с помощью ключа -s в формате: yc-image-cleanup.sh -s <spec1>,<spec2> -t. Проверки можно отключить с помощью спецификаторов:

  • users-locked-nocheck — отключает проверку, что аутентификация по паролю выключена для всех пользователей, и зайти на ВМ можно только по ключу.
  • empty-history-nocheck — отключает проверку, что история bash пуста у всех пользователей.
  • one-auth-user-nocheck — отключает проверку, что только у одного пользователя, кроме root, есть запись в authorized_keys. Таким пользователем может быть только пользователь, заданный в metadata.
  • one-auth-key-nocheck — отключает проверку, что каждый пользователь имеет не более одной записи в authorized_keys. Эта проверка не пройдет, если в исходном образе не был удален какой-либо пользователь с записью в authorized_keys.
  • no-private-keys-nocheck — отключает проверку, что ни у одного пользователя не осталось файлов пары "публичный ключ — приватный ключ" в папке .ssh домашнего каталога.
  • no-passwords-nocheck — отключает проверку, что аутентификации по паролю в файле конфигурации sshd выключена.

Скрипт yc-image-cleanup.sh с ключом -t может быть запущен в режиме verbose для вывода детализации выполнения проверки. При запуске с детализацией для каждого этапа проверки будет выведен список пользователей, которые не прошли проверку, или недопустимые значения параметров конфигурации. Режим детализации поддерживает только уровень normal. Чтобы запустить скрипт проверки в режиме детализации, выполните команду (ключи должны следовать в указанном порядке):

./yc-image-cleanup.sh -v normal -t

Чтобы посмотреть все доступные параметры скрипта и все переменные окружения, влияющие на его исполнение, запустите команду:

./yc-image-cleanup.sh -h

Была ли статья полезна?

Предыдущая
Подписка
Следующая
Создание продукта для Managed Service for Kubernetes
Проект Яндекса
© 2025 ООО «Яндекс.Облако»