Files
DevOpsLab/docs/presets.md
Sergey Antropoff 8071fba25f feat: Создана полная документация проекта с централизованным хранением
- Создан новый README.md с полной документацией проекта
- Перемещены все MD файлы в папку /docs
- Создана структура документации:
  - docs/universal-lab.md - руководство по лаборатории
  - docs/presets.md - описание всех 21 пресета
  - docs/roles.md - структура и создание Ansible ролей
  - docs/examples.md - практические примеры использования
  - docs/troubleshooting.md - решение проблем
  - docs/api.md - справочник по API

Основные возможности документации:
- Полное описание всех возможностей лаборатории
- 21 готовый пресет для различных сценариев
- Подробные инструкции по использованию
- Примеры создания собственных пресетов
- Руководство по созданию Ansible ролей
- Troubleshooting для решения проблем
- API Reference для всех команд и параметров

Структура проекта:
- README.md - основная документация с ссылками
- docs/ - централизованное хранение документации
- molecule/presets/ - 21 готовый пресет
- files/ - файлы для ролей и playbooks
- scripts/ - скрипты для управления лабораторией

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

11 KiB
Raw Blame History

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

Автор

Сергей Антропов
Сайт: 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