Packer - необходимый минимум
15 марта 2019 г.
1 минута
20

Packer - собираем нужный образ в любом месте (локально, в облаке, vagrant).
Суть Packer - подготовить такой образ, на котором есть необходимый минимум, в основном это ОС и рантайм, но так же можно добавлять любые операции, включая git clone..., bash-скрипты, ansible-роли и уже на этом образе разворачивать приложения.
Базовый образ должен содержать:
- Настройки ОС
- Пакеты, с низкой частотой изменения (Nodejs, python, ruby, mongodb...)
- Логи, мониторинг, агенты систем управления конфигурацией
Подход - Immutable Infrastructure
- Образ VM - артефакт для деплоя
- Не изменяем запущенные инстансы
- Любые изменения: собираем новый образ
- Старый инстанс заменяем на новый
Packer
$ packer -v
Для управления сторонней инфраструктурой необходимо в ней авторизоваться
например Google cloud:
$ gcloud auth application-default login
Переменные описываются в файле variables.json
Gist с примером файла переменных
Конфигурация образа описывается в json-файле
Содержит разделы:
- builders (настройки сборки, где - облако или локально, что - имя образа и базовый образ ОС, как - ssh)
- variables (переменные)
- provisioners (различные действия по установке или настройке на ОС)
Gist на пример конфига с shell
Gist на примере конфига с ansible
запуск с файлом переменных:
валидация
Inspect
Build
Михаил Бондарев
7 лет назад
0
108813 г. Москва, вн.тер.г. поселение Московский,
г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3
ОГРН 1217300010476
ИНН 7325174845





