Files
DevOpsLab/roles/deploy
Sergey Antropoff 51c76fb859 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
2025-10-22 14:18:49 +03:00
..

Роль 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 - конфигурация 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