feat: Упрощена система ролей и добавлена автоматизация

- Создана простая демо роль для тестирования
- Упрощена роль deploy (убраны сложные компоненты)
- Добавлен скрипт auto-add-role.sh для автоматического добавления ролей
- Обновлен Makefile для автоматического добавления новых ролей

Изменения в роли deploy:
- Убраны сложные компоненты (ETCD, Patroni, HAProxy)
- Добавлена демо роль для тестирования
- Упрощены переменные и задачи

Новая демо роль:
- roles/demo/ - простая роль для тестирования
- Устанавливает базовые инструменты (htop, tree, git)
- Создает демо файлы с информацией о хосте
- Легко удаляется без поломки системы

Автоматизация:
- scripts/auto-add-role.sh - автоматическое добавление ролей
- Обновление deploy/tasks/main.yml
- Обновление deploy/defaults/main.yml
- Обновление site.yml
- Автоматическое выполнение при make role create

Преимущества:
- Простота тестирования с демо ролью
- Автоматическое добавление новых ролей
- Универсальность системы
- Легкое удаление без поломки
- Модульная архитектура

Автор: Сергей Антропов
Сайт: https://devops.org.ru
This commit is contained in:
2025-10-22 14:25:27 +03:00
parent 51c76fb859
commit e6287769d6
10 changed files with 209 additions and 30 deletions

View File

@@ -7,13 +7,11 @@
deploy_enabled: true
deploy_cleanup: false
# Настройки групп
etcd_enabled: true
patroni_enabled: true
haproxy_enabled: true
apps_enabled: true
# Настройки демо роли
demo_enabled: true
# Настройки DinD
apps_enabled: true
dind_stack_dir: /root/stack
dind_compose_file: docker-compose.yml

View File

@@ -3,12 +3,10 @@
# Автор: Сергей Антропов
# Сайт: https://devops.org.ru
- name: Include group-specific tasks
include_tasks: "{{ item.name }}.yml"
loop: "{{ deploy_groups }}"
when: item.enabled | bool
loop_control:
label: "{{ item.name }}"
- name: Deploy demo role
include_role:
name: demo
when: demo_enabled | default(true)
- name: Deploy DinD stack
include_tasks: dind-stack.yml

View File

@@ -3,21 +3,6 @@
# Автор: Сергей Антропов
# Сайт: 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"