О плагине
Утилита 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.
Сборка образов
Заголовок раздела «Сборка образов»Образ собирается в несколько этапов:
Создание временной ВМ на основе образа-источника.
Packer создает ВМ, а также необходимые ресурсы, если они не указаны явно: сетевой диск, сеть и подсеть. Создаваемые Packer ресурсы расходуют квоты.
Внесение изменений в образ-источник.
Packer подключается к временной ВМ и выполняет команды, заданные в конфигурационном файле.
Сохранение образа в сервисе Compute.
Packer создает новый образ из сетевого диска, использованного во временной ВМ.
Удаление ресурсов.
Packer удаляет все автоматически созданные временные ресурсы. Если в конфигурации указаны уже существующие ресурсы — например, сеть и подсеть, то они не будут удалены.
Экспорт и импорт образов в Object Storage
Заголовок раздела «Экспорт и импорт образов в Object Storage»Плагин включает два постпроцессора для работы с 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 с помощью сервисного аккаунта.
Подробное описание постпроцессоров, полный список параметров и примеры использования читайте в публичной документации репозитория.