# Роль 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