feat: Создана роль deploy для управления инфраструктурой
- Создана полноценная роль 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
This commit is contained in:
114
roles/deploy/README.md
Normal file
114
roles/deploy/README.md
Normal file
@@ -0,0 +1,114 @@
|
||||
# Роль 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 |
|
||||
|
||||
## Использование
|
||||
|
||||
### Базовое использование
|
||||
|
||||
```yaml
|
||||
- hosts: all
|
||||
roles:
|
||||
- role: deploy
|
||||
```
|
||||
|
||||
### С настройками
|
||||
|
||||
```yaml
|
||||
- hosts: all
|
||||
roles:
|
||||
- role: deploy
|
||||
vars:
|
||||
etcd_enabled: true
|
||||
patroni_enabled: true
|
||||
haproxy_enabled: false
|
||||
apps_enabled: true
|
||||
```
|
||||
|
||||
### Условное развертывание
|
||||
|
||||
```yaml
|
||||
- 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` - конфигурация HAProxy
|
||||
- `docker-compose.yml.j2` - конфигурация DinD стека
|
||||
|
||||
## Обработчики
|
||||
|
||||
- `restart haproxy` - перезапуск HAProxy
|
||||
- `restart etcd` - перезапуск ETCD
|
||||
- `restart postgresql` - перезапуск PostgreSQL
|
||||
- `restart docker` - перезапуск Docker
|
||||
|
||||
## Требования
|
||||
|
||||
- Ansible >= 2.9
|
||||
- Python >= 3.6
|
||||
- Docker (для DinD)
|
||||
- systemd
|
||||
|
||||
## Автор
|
||||
|
||||
Сергей Антропов
|
||||
Сайт: https://devops.org.ru
|
||||
Reference in New Issue
Block a user