multipass-compose в архиве
Оркестрация виртуальных машин одним манифестом
multipass-compose - это docker-compose для Multipass от Canonical. Вы описываете несколько виртуальных машин Ubuntu в одном YAML-файле и поднимаете или удаляете их разом.
Проект в архиве - репозиторий доступен только для чтения с 2023-11-21. Если нужно похожее сегодня, поддерживаемая альтернатива - lima / colima. Оставлен здесь для справки.
Зачем
Делать это руками - значит несколько раз запускать multipass launch с одними и теми же флагами,
настраивать cloud-init на каждой машине и помнить, какая ВМ за что отвечает.
multipass-compose складывает всё в один файл.
Обычный сценарий - работа с облачной инфраструктурой: нужно несколько настоящих ВМ на ноутбуке, чтобы проверить провижининг, не поднимая ничего в реальном облаке.
Возможности
- Один файл - все ВМ в одном
multipass-compose.yaml, в стиле docker-compose. - Размер под каждую машину - CPU, память и диск задаются на каждую ВМ.
- cloud-init - каждой машине можно дать свой cloud-init для настройки при первом запуске.
- Провижининг - настройка машин после запуска по SSH (пароль или ключ) или через Ansible.
- Apple Silicon и Intel - один и тот же файл работает на обоих.
Установка
Сначала нужен сам Multipass, затем поставьте CLI через Go:
brew install --cask multipass # необходим Multipass
go install github.com/petr-korobeinikov/multipass-compose/cmd/multipass-compose@latest
Использование
Опишите машины в multipass-compose.yaml:
services:
web-server:
image: focal
database:
image: focal
backend:
image: focal
Затем запустите:
multipass-compose up # запустить все машины
multipass-compose status # проверить их состояние
multipass-compose down # остановить и удалить их
Стек
- Go, установка через
go install - YAML-манифест поверх CLI Multipass
- cloud-init для настройки при первом запуске, Ansible для провижининга
Ссылки
- GitHub - исходники и релизы (архив, read-only, MIT)
- Документация - быстрый старт, установка, руководства
- Примеры - девять примеров, от одной ВМ до провижининга через Ansible