- Создана полноценная роль deploy в roles/deploy/ - Перенесена логика развертывания из site.yml в роль - Обновлен site.yml для использования роли deploy - Добавлена поддержка условного развертывания по группам Структура роли deploy: - tasks/main.yml - основные задачи - tasks/etcd.yml - развертывание ETCD - tasks/patroni.yml - развертывание Patroni - tasks/haproxy.yml - развертывание HAProxy - tasks/apps.yml - развертывание приложений - tasks/dind-stack.yml - развертывание DinD стека - templates/haproxy.cfg.j2 - конфигурация HAProxy - templates/docker-compose.yml.j2 - конфигурация DinD стека - handlers/main.yml - обработчики сервисов - defaults/main.yml - переменные по умолчанию - vars/main.yml - переменные роли - meta/main.yml - метаданные роли - README.md - документация роли Обновления в site.yml: - Упрощен до базовой установки common tools - Добавлена роль deploy с условным развертыванием - Поддержка развертывания по группам (etcd, patroni, haproxy, apps) Новые команды: - make role info NAME=deploy - информация о роли - make role deploy - развертывание ролей с inventory Преимущества: - Модульная архитектура с разделением ответственности - Условное развертывание по группам хостов - Переиспользуемые компоненты (ETCD, Patroni, HAProxy) - Шаблоны для конфигурации сервисов - Обработчики для перезапуска сервисов - Подробная документация роли Автор: Сергей Антропов Сайт: https://devops.org.ru
3.3 KiB
3.3 KiB
Роль Deploy
Универсальная роль для развертывания инфраструктуры лаборатории.
Описание
Роль deploy предназначена для развертывания различных компонентов инфраструктуры в лабораторной среде. Она поддерживает развертывание ETCD, Patroni, HAProxy и приложений с DinD стеками.
Переменные
Основные переменные
| Переменная | По умолчанию | Описание |
|---|---|---|
deploy_enabled |
true |
Включить развертывание |
deploy_cleanup |
false |
Очистка перед развертыванием |
Переменные групп
| Переменная | По умолчанию | Описание |
|---|---|---|
etcd_enabled |
true |
Включить развертывание ETCD |
patroni_enabled |
true |
Включить развертывание Patroni |
haproxy_enabled |
true |
Включить развертывание HAProxy |
apps_enabled |
true |
Включить развертывание приложений |
Переменные DinD
| Переменная | По умолчанию | Описание |
|---|---|---|
dind_stack_dir |
/root/stack |
Директория для DinD стека |
dind_compose_file |
docker-compose.yml |
Имя файла docker-compose |
Использование
Базовое использование
- hosts: all
roles:
- role: deploy
С настройками
- hosts: all
roles:
- role: deploy
vars:
etcd_enabled: true
patroni_enabled: true
haproxy_enabled: false
apps_enabled: true
Условное развертывание
- hosts: all
roles:
- role: deploy
vars:
etcd_enabled: "{{ 'etcd' in group_names }}"
patroni_enabled: "{{ 'patroni' in group_names }}"
haproxy_enabled: "{{ 'haproxy' in group_names }}"
apps_enabled: "{{ 'apps' in group_names }}"
Компоненты
ETCD
- Установка ETCD
- Настройка сервиса
- Проверка статуса
Patroni
- Установка PostgreSQL
- Установка Patroni
- Настройка пользователя postgres
HAProxy
- Установка HAProxy
- Генерация конфигурации
- Настройка балансировки
Apps
- Установка Docker
- Настройка пользователя
- Развертывание DinD стека
Шаблоны
haproxy.cfg.j2- конфигурация HAProxydocker-compose.yml.j2- конфигурация DinD стека
Обработчики
restart haproxy- перезапуск HAProxyrestart etcd- перезапуск ETCDrestart postgresql- перезапуск PostgreSQLrestart docker- перезапуск Docker
Требования
- Ansible >= 2.9
- Python >= 3.6
- Docker (для DinD)
- systemd
Автор
Сергей Антропов
Сайт: https://devops.org.ru