- Создано 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
Пресеты универсальной лаборатории
Автор
Сергей Антропов
Сайт: https://devops.org.ru
Описание
Этот каталог содержит готовые пресеты для различных сценариев тестирования Ansible ролей. Каждый пресет оптимизирован для определенного типа инфраструктуры и количества машин.
Доступные пресеты
1. Минимальная лаборатория (1-3 машины)
Файл: minimal.yml
Описание: Базовая конфигурация для простых тестов Ansible ролей
Компоненты: 1 контроллер, 1 веб-сервер, 1 база данных
Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/minimal.yml
2. Веб-приложение (3-5 машин)
Файл: webapp.yml
Описание: Классическая архитектура веб-приложения
Компоненты: 2 веб-сервера, 1 БД, 1 кэш, 1 балансировщик
Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/webapp.yml
3. Микросервисы (5-8 машин)
Файл: microservices.yml
Описание: Архитектура микросервисов с разделением ответственности
Компоненты: API Gateway, микросервисы, БД, кэш, очередь, мониторинг
Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/microservices.yml
4. Высокая доступность (6-10 машин)
Файл: ha.yml
Описание: Кластер высокой доступности с репликацией
Компоненты: 2 веб-сервера, 2 БД, 2 кэша, балансировщик, мониторинг
Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/ha.yml
5. Kubernetes кластер (8-12 машин)
Файл: k8s-cluster.yml
Описание: Полноценный Kubernetes кластер с различными ролями
Компоненты: 3 master, 3 worker, 3 etcd, ingress, мониторинг
Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/k8s-cluster.yml
6. CI/CD пайплайн (10-15 машин)
Файл: cicd.yml
Описание: Полноценный CI/CD пайплайн с различными инструментами
Компоненты: Git, Jenkins, Nexus, Docker Registry, среды, мониторинг, ELK
Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/cicd.yml
7. Big Data кластер (12-18 машин)
Файл: bigdata.yml
Описание: Кластер для обработки больших данных
Компоненты: Hadoop, Spark, Kafka, Zookeeper, Elasticsearch, Kibana
Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/bigdata.yml
8. Service Mesh (15-20 машин)
Файл: servicemesh.yml
Описание: Полноценный service mesh с Istio и множественными сервисами
Компоненты: Istio, Frontend, Backend, БД, кэш, мониторинг, трассировка
Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/servicemesh.yml
9. Enterprise (18-20 машин)
Файл: enterprise.yml
Описание: Полноценная enterprise инфраструктура с высокой доступностью
Компоненты: LB, Web, API Gateway, App, БД, кэш, очереди, поиск, мониторинг, логи, backup
Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/enterprise.yml
10. Максимальный (20 машин)
Файл: maximum.yml
Описание: Максимально сложная инфраструктура для экстремальных условий
Компоненты: Все компоненты enterprise + трассировка + визуализация
Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/maximum.yml
Использование
Быстрый старт
# Выбрать пресет
export LAB_SPEC=molecule/presets/minimal.yml
# Запустить тестирование
make lab-test
Создание собственного пресета
- Скопировать существующий пресет:
cp minimal.yml my-preset.yml - Отредактировать под ваши нужды
- Использовать:
make lab-test LAB_SPEC=molecule/presets/my-preset.yml
Переменные окружения
# Установить пресет по умолчанию
export LAB_SPEC=molecule/presets/webapp.yml
# Или использовать в команде
make lab-test LAB_SPEC=molecule/presets/ha.yml
Рекомендации
- Для начинающих: используйте
minimal.ymlилиwebapp.yml - Для микросервисов:
microservices.ymlилиservicemesh.yml - Для Kubernetes:
k8s-cluster.yml - Для enterprise:
enterprise.ymlилиmaximum.yml - Для Big Data:
bigdata.yml
Кастомизация
Каждый пресет можно настроить под ваши нужды:
- Изменить количество машин
- Добавить/убрать группы
- Изменить семейства ОС (debian/rhel)
- Настроить порты и переменные
Troubleshooting
Если пресет не работает:
- Проверьте доступность Docker образов
- Убедитесь в достаточности ресурсов
- Проверьте логи:
make lab-verify - Очистите лабораторию:
make lab-cleanup