Перейти к содержимому

О плагине

Утилита Packer автоматизирует создание неизменяемых образов ВМ (machine images). Packer создает ВМ, на которой разворачивает выбранный образ, и настраивает его по заданной конфигурации.

Плагин mws расширяет возможности Packer поддержкой MWS Cloud Platform. С помощью этого плагина Packer создает пользовательские образы Compute на основе уже существующих образов или резервных копий — например, чтобы один раз настроить окружение с нужным ПО и переиспользовать готовый образ при запуске новых виртуальных машин. Исходный код плагина опубликован в открытом репозитории.

Плагин состоит из трех компонентов:

  • сборщик mws — собирает образ по заданной конфигурации и сохраняет результат как новый образ MWS Compute;
  • постпроцессор mws-export — экспортирует уже созданный образ в Object Storage в виде образа qcow2;
  • постпроцессор mws-import — импортирует qcow2-образ из Object Storage и создает из него образ MWS Compute.

Образ собирается в несколько этапов:

  1. Создание временной ВМ на основе образа-источника.

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

  2. Внесение изменений в образ-источник.

    Packer подключается к временной ВМ и выполняет команды, заданные в конфигурационном файле.

  3. Сохранение образа в сервисе Compute.

    Packer создает новый образ из сетевого диска, использованного во временной ВМ.

  4. Удаление ресурсов.

    Packer удаляет все автоматически созданные временные ресурсы. Если в конфигурации указаны уже существующие ресурсы — например, сеть и подсеть, то они не будут удалены.

Плагин включает два постпроцессора для работы с Object Storage:

  • mws-export — предназначен для экспорта целевого образа в Object Storage. Постпроцессор генерирует временный SSH-ключ, создает временную ВМ, подключает к ней диск с исходным образом, сохраняет его как qcow2-файл и загружает в указанный бакет Object Storage.
  • mws-import — предназначен для импорта файла образа-источника из Object Storage. Постпроцессор берет готовый qcow2-файл из Object Storage по подписанной ссылке и создает из него новый образ Compute.

Постпроцессоры для аутентификации используют HMAC-ключ. HMAC-ключ задается в конфигурации (через пару Access Key и Secret Key) или генерируется автоматически на время работы Packer с помощью сервисного аккаунта.

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