- Создана полноценная роль 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
37 lines
989 B
YAML
37 lines
989 B
YAML
---
|
|
# Переменные роли deploy
|
|
# Автор: Сергей Антропов
|
|
# Сайт: https://devops.org.ru
|
|
|
|
# Список групп для развертывания
|
|
deploy_groups:
|
|
- name: etcd
|
|
enabled: "{{ etcd_enabled }}"
|
|
description: "ETCD кластер"
|
|
- name: patroni
|
|
enabled: "{{ patroni_enabled }}"
|
|
description: "Patroni PostgreSQL кластер"
|
|
- name: haproxy
|
|
enabled: "{{ haproxy_enabled }}"
|
|
description: "HAProxy балансировщик"
|
|
- name: apps
|
|
enabled: "{{ apps_enabled }}"
|
|
description: "Приложения и DinD стеки"
|
|
|
|
# Настройки DinD стека
|
|
dind_stack_config:
|
|
version: "3.9"
|
|
services:
|
|
web:
|
|
image: nginx:alpine
|
|
ports:
|
|
- "8080:80"
|
|
cache:
|
|
image: redis:7-alpine
|
|
db:
|
|
image: postgres:15-alpine
|
|
environment:
|
|
POSTGRES_DB: app
|
|
POSTGRES_USER: app
|
|
POSTGRES_PASSWORD: "{{ vault_db_password | default('changeme') }}"
|