Files
DevOpsLab/molecule/presets
Sergey Antropoff d32ca54f7b feat: Добавлены расширенные пресеты для Kubernetes, DinD и DOoD
- Создано 11 новых пресетов для различных конфигураций
- Kubernetes пресеты: single, multi-cluster, istio-full
- DinD пресеты: simple, swarm, compose
- DOoD пресеты: simple, mixed
- Смешанные пресеты: k8s+dind, k8s+dood, full-stack

Kubernetes пресеты:
- k8s-single.yml - одиночный Kind кластер
- k8s-multi.yml - мульти-кластерная конфигурация (dev/staging/prod)
- k8s-istio-full.yml - полный стек Istio с мониторингом

DinD пресеты:
- dind-simple.yml - 3 изолированных Docker среды
- dind-swarm.yml - Docker Swarm кластер (1 manager + 4 workers)
- dind-compose.yml - 4 DinD контейнера для Compose стека

DOoD пресеты:
- dood-simple.yml - 3 DOoD контейнера с доступом к Docker daemon
- dood-mixed.yml - смешанная конфигурация DOoD + systemd

Смешанные пресеты:
- mixed-k8s-dind.yml - Kubernetes + DinD
- mixed-k8s-dood.yml - Kubernetes + DOoD
- mixed-full.yml - полная гибридная конфигурация

Обновлена документация:
- README с описанием всех 21 пресета
- Категоризация по типам (классические, k8s, dind, dood, смешанные)
- Примеры использования для каждого пресета
- Рекомендации по выбору подходящего пресета

Автор: Сергей Антропов
Сайт: https://devops.org.ru
2025-10-22 13:23:01 +03:00
..

Пресеты универсальной лаборатории

Автор

Сергей Антропов
Сайт: https://devops.org.ru

Описание

Этот каталог содержит готовые пресеты для различных сценариев тестирования Ansible ролей. Каждый пресет оптимизирован для определенного типа инфраструктуры и количества машин.

Доступные пресеты

🏗️ Классические пресеты (systemd контейнеры)

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

☸️ Kubernetes пресеты

11. Kubernetes Single Node (1 кластер)

Файл: k8s-single.yml
Описание: Одиночный Kind кластер для простого тестирования K8s ролей
Компоненты: 1 Kind кластер с 1 worker, базовые аддоны
Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/k8s-single.yml

12. Kubernetes Multi-Cluster (3 кластера)

Файл: k8s-multi.yml
Описание: Несколько Kind кластеров для тестирования мульти-кластерных сценариев
Компоненты: 3 кластера (dev, staging, prod) с различными конфигурациями
Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/k8s-multi.yml

13. Kubernetes + Istio Full Stack (1 кластер с полным стеком)

Файл: k8s-istio-full.yml
Описание: Полноценный Kubernetes кластер с полным стеком Istio
Компоненты: 1 Kind кластер с 3 workers, Istio, Kiali, Prometheus, Grafana, Jaeger
Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/k8s-istio-full.yml

🐳 Docker-in-Docker (DinD) пресеты

14. DinD Simple (3 DinD контейнера)

Файл: dind-simple.yml
Описание: Простая конфигурация DinD для тестирования Docker ролей
Компоненты: 3 DinD контейнера с изолированными Docker средами
Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/dind-simple.yml

15. DinD Swarm (5 DinD контейнеров)

Файл: dind-swarm.yml
Описание: Docker Swarm кластер для тестирования оркестрации
Компоненты: 1 Manager + 4 Worker узла в Docker Swarm режиме
Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/dind-swarm.yml

16. DinD Compose (4 DinD контейнера)

Файл: dind-compose.yml
Описание: DinD контейнеры для тестирования Docker Compose стека
Компоненты: 4 DinD контейнера с различными стеками
Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/dind-compose.yml

🔗 Docker-outside-of-Docker (DOoD) пресеты

17. DOoD Simple (3 DOoD контейнера)

Файл: dood-simple.yml
Описание: Простая конфигурация DOoD для тестирования Docker ролей
Компоненты: 3 DOoD контейнера с доступом к Docker daemon хоста
Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/dood-simple.yml

18. DOoD Mixed (5 DOoD + 2 systemd)

Файл: dood-mixed.yml
Описание: Смешанная конфигурация DOoD и systemd контейнеров
Компоненты: 5 DOoD контейнеров для Docker операций + 2 systemd для системных ролей
Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/dood-mixed.yml

🔀 Смешанные пресеты

19. Mixed Kubernetes + DinD (1 K8s + 3 DinD)

Файл: mixed-k8s-dind.yml
Описание: Смешанная конфигурация Kubernetes и Docker-in-Docker
Компоненты: 1 Kind кластер + 3 DinD контейнера
Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/mixed-k8s-dind.yml

20. Mixed Kubernetes + DOoD (1 K8s + 3 DOoD)

Файл: mixed-k8s-dood.yml
Описание: Смешанная конфигурация Kubernetes и Docker-outside-of-Docker
Компоненты: 1 Kind кластер + 3 DOoD контейнера
Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/mixed-k8s-dood.yml

21. Mixed Full Stack (1 K8s + 2 DinD + 2 DOoD + 2 systemd)

Файл: mixed-full.yml
Описание: Полная смешанная конфигурация для комплексного тестирования
Компоненты: 1 Kind кластер + 2 DinD + 2 DOoD + 2 systemd контейнера
Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/mixed-full.yml

Использование

Быстрый старт

# Выбрать пресет
export LAB_SPEC=molecule/presets/minimal.yml

# Запустить тестирование
make lab-test

Создание собственного пресета

  1. Скопировать существующий пресет: cp minimal.yml my-preset.yml
  2. Отредактировать под ваши нужды
  3. Использовать: 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

Если пресет не работает:

  1. Проверьте доступность Docker образов
  2. Убедитесь в достаточности ресурсов
  3. Проверьте логи: make lab-verify
  4. Очистите лабораторию: make lab-cleanup