Недавно появилась необходимость автоматизировать внедрение приложений из GIT на сервера.
В данной статье я решил описать свой опыт внедрения.
Поступило интересное задание по установке/обновлению приложения на серверах компании имея следующие данные:
* Приложение расположено в GIT
* Версия приложения можно узнать командой "git tag"
* Список серверов и путь где должно находиться приложение
Поскольку исторически так сложилось, что в компании используется RPM-based OS, то, IMHO, в данном случае наиболее правильным решением было реализовать упаковку приложения в RPM-пакет с последующим распространением его через puppet. Соответственно puppet устанавливает ПО и накатывает необходимый конфигурационный файл по шаблону.
Процесс настройки системы:
- Настройка yum-репозитория
- Установка и настройка nginx
- Скрипт автоматического build с размещением его в yum-репозиторий
- Автоматическая проверка обновлений и привязка к созданию build
- Настройка puppet