feat: Добавлены пресеты для различных сценариев тестирования (1-20 машин)

- Создано 10 готовых пресетов для разных типов инфраструктуры
- Минимальная лаборатория (1-3 машины) - базовое тестирование
- Веб-приложение (3-5 машин) - классическая архитектура
- Микросервисы (5-8 машин) - современная архитектура
- Высокая доступность (6-10 машин) - отказоустойчивость
- Kubernetes кластер (8-12 машин) - контейнерная оркестрация
- CI/CD пайплайн (10-15 машин) - автоматизация разработки
- Big Data кластер (12-18 машин) - обработка больших данных
- Service Mesh (15-20 машин) - микросервисная архитектура
- Enterprise (18-20 машин) - корпоративная инфраструктура
- Максимальный (20 машин) - экстремальные условия

Каждый пресет включает:
- Подробное описание архитектуры
- Различные группы хостов (webservers, databases, monitoring)
- Смешанные семейства ОС (debian/rhel)
- Настроенные порты и сервисы
- Готовые команды для запуска

Документация:
- README с описанием всех пресетов
- Примеры использования
- Рекомендации по выбору
- Troubleshooting

Автор: Сергей Антропов
Сайт: https://devops.org.ru
This commit is contained in:
2025-10-22 13:15:11 +03:00
parent 33ada54c12
commit b1bae8af9f
12 changed files with 1231 additions and 0 deletions

View File

@@ -0,0 +1,167 @@
---
# ПРЕСЕТ: Enterprise (18-20 машин)
#
# Описание: Полноценная enterprise инфраструктура с высокой доступностью
# - 2 Load Balancer (HAProxy) - балансировка нагрузки
# - 3 Web сервера (nginx) - веб-приложения
# - 2 API Gateway (Kong) - управление API
# - 3 Application сервера - бизнес-логика
# - 2 Database Master/Slave (PostgreSQL) - основная БД
# - 2 Cache кластер (Redis) - кэширование
# - 1 Message Queue (RabbitMQ) - асинхронная обработка
# - 1 Search Engine (Elasticsearch) - поиск
# - 1 Monitoring (Prometheus) - метрики
# - 1 Logging (ELK Stack) - централизованные логи
# - 1 Backup сервер - резервное копирование
#
# Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/enterprise.yml
#
# Автор: Сергей Антропов
# Сайт: https://devops.org.ru
docker_network: labnet
images:
debian: "ghcr.io/ansible-community/molecule-ubuntu-systemd:jammy"
rhel: "quay.io/centos/centos:stream9-systemd"
systemd_defaults:
privileged: true
command: "/sbin/init"
volumes:
- "/sys/fs/cgroup:/sys/fs/cgroup:ro"
tmpfs:
- "/run"
- "/run/lock"
capabilities:
- "SYS_ADMIN"
hosts:
- name: lb1
group: loadbalancers
family: debian
publish:
- "80:80"
- "443:443"
- name: lb2
group: loadbalancers
family: rhel
publish:
- "8080:80"
- "8443:443"
- name: web1
group: webservers
family: rhel
publish:
- "8081:80"
- name: web2
group: webservers
family: debian
publish:
- "8082:80"
- name: web3
group: webservers
family: rhel
publish:
- "8083:80"
- name: api-gateway1
group: gateways
family: debian
publish:
- "8001:8000"
- name: api-gateway2
group: gateways
family: rhel
publish:
- "8002:8000"
- name: app1
group: applications
family: rhel
publish:
- "9001:9000"
- name: app2
group: applications
family: debian
publish:
- "9002:9000"
- name: app3
group: applications
family: rhel
publish:
- "9003:9000"
- name: db-master
group: databases
family: debian
publish:
- "5432:5432"
- name: db-slave
group: databases
family: rhel
publish:
- "5433:5432"
- name: cache1
group: caches
family: debian
publish:
- "6379:6379"
- name: cache2
group: caches
family: rhel
publish:
- "6380:6379"
- name: message-queue
group: queues
family: debian
publish:
- "5672:5672"
- "15672:15672"
- name: elasticsearch
group: search
family: rhel
publish:
- "9200:9200"
- name: monitoring
group: monitoring
family: debian
publish:
- "9090:9090"
- name: elasticsearch-logs
group: logging
family: rhel
publish:
- "9201:9200"
- name: kibana
group: logging
family: debian
publish:
- "5601:5601"
- name: logstash
group: logging
family: rhel
publish:
- "5044:5044"
- name: backup
group: backup
family: debian
publish:
- "22:22"