Развернуть в облачном провайдере экземпляр приложения Redmine
- Приложение запускается как Docker контейнер
- Решение использует облачную инфраструктуру провайдеров
- Облачную БД
- Балансировшик нагрузки
- Приложение доступно из интернета по доменному имени и https
- Деплой приложения происходит через Ansible и используются следущие возможности
- Роли
- Vault
- Группы хостов
- У приложения настроен монтиторинг через DataDog
Для реализации проекта было выбрано Яндекс Облако в качестве облачного провайдера и Cloudflare для DNS хостинга
Для развертывания инфраструктуры был использован terraform. В описанной конфигурации создаются виртуальные машины, кластре БД Postgres, балансировщик нагрузки, выпускаются сертификаты от Let's Encrypt и обновляются DNS записи. Подробнее описано в папке проекта terraform
После запуска terraform генерирует inventory файл
Основной playbook - playbook.yml
Описаны две роли
-
roles/docker устанавливает если необходимо Docker на хостах
-
roles/redmine запускает Redmine на хостах
-
roles/datadog устанавливает и запускает DataDog agent
Хосты, на которые должен быть установлен Redmine выделены в группу webservers
Зависимости описаны в requirements.yml
Для удобства добавлен Makefile
Доступные команды
- Установка зависимостей
make dependencies
- Проверка playbook
make check
- Запуск playbook
make
- Редактирование vault для группы
webservers
make edit-vault-webservers
Решение развернуто на домене https://bulka.dev