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