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

197 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Пресеты универсальной лаборатории
## Автор
Сергей Антропов
Сайт: 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`
## Использование
### Быстрый старт
```bash
# Выбрать пресет
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`
### Переменные окружения
```bash
# Установить пресет по умолчанию
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`