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:
36
roles/deploy/templates/docker-compose.yml.j2
Normal file
36
roles/deploy/templates/docker-compose.yml.j2
Normal file
@@ -0,0 +1,36 @@
|
||||
# Docker Compose конфигурация для DinD стека
|
||||
# Автор: Сергей Антропов
|
||||
# Сайт: https://devops.org.ru
|
||||
|
||||
version: "{{ dind_stack_config.version }}"
|
||||
|
||||
services:
|
||||
web:
|
||||
image: {{ dind_stack_config.services.web.image }}
|
||||
ports:
|
||||
- "{{ dind_stack_config.services.web.ports[0] }}"
|
||||
depends_on:
|
||||
- cache
|
||||
- db
|
||||
restart: unless-stopped
|
||||
|
||||
cache:
|
||||
image: {{ dind_stack_config.services.cache.image }}
|
||||
restart: unless-stopped
|
||||
command: redis-server --appendonly yes
|
||||
volumes:
|
||||
- redis_data:/data
|
||||
|
||||
db:
|
||||
image: {{ dind_stack_config.services.db.image }}
|
||||
environment:
|
||||
POSTGRES_DB: {{ dind_stack_config.services.db.environment.POSTGRES_DB }}
|
||||
POSTGRES_USER: {{ dind_stack_config.services.db.environment.POSTGRES_USER }}
|
||||
POSTGRES_PASSWORD: {{ dind_stack_config.services.db.environment.POSTGRES_PASSWORD }}
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- postgres_data:/var/lib/postgresql/data
|
||||
|
||||
volumes:
|
||||
redis_data:
|
||||
postgres_data:
|
||||
31
roles/deploy/templates/haproxy.cfg.j2
Normal file
31
roles/deploy/templates/haproxy.cfg.j2
Normal file
@@ -0,0 +1,31 @@
|
||||
# HAProxy конфигурация
|
||||
# Автор: Сергей Антропов
|
||||
# Сайт: https://devops.org.ru
|
||||
|
||||
global
|
||||
daemon
|
||||
maxconn 4096
|
||||
log stdout local0
|
||||
|
||||
defaults
|
||||
mode tcp
|
||||
timeout connect 5000ms
|
||||
timeout client 50000ms
|
||||
timeout server 50000ms
|
||||
|
||||
# PostgreSQL кластер
|
||||
listen postgresql
|
||||
bind *:5000
|
||||
balance roundrobin
|
||||
option tcp-check
|
||||
tcp-check connect port 5432
|
||||
{% for host in groups['patroni'] | default([]) %}
|
||||
server {{ host }} {{ host }}:5432 check
|
||||
{% endfor %}
|
||||
|
||||
# Статистика HAProxy
|
||||
listen stats
|
||||
bind *:8404
|
||||
stats enable
|
||||
stats uri /stats
|
||||
stats refresh 5s
|
||||
Reference in New Issue
Block a user