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:
@@ -94,6 +94,40 @@ make lab-cleanup # Очистить все
|
|||||||
make lab-reset
|
make lab-reset
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### 4. Пресеты для разных сценариев
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Минимальная лаборатория (1-3 машины)
|
||||||
|
make lab-test LAB_SPEC=molecule/presets/minimal.yml
|
||||||
|
|
||||||
|
# Веб-приложение (3-5 машин)
|
||||||
|
make lab-test LAB_SPEC=molecule/presets/webapp.yml
|
||||||
|
|
||||||
|
# Микросервисы (5-8 машин)
|
||||||
|
make lab-test LAB_SPEC=molecule/presets/microservices.yml
|
||||||
|
|
||||||
|
# Высокая доступность (6-10 машин)
|
||||||
|
make lab-test LAB_SPEC=molecule/presets/ha.yml
|
||||||
|
|
||||||
|
# Kubernetes кластер (8-12 машин)
|
||||||
|
make lab-test LAB_SPEC=molecule/presets/k8s-cluster.yml
|
||||||
|
|
||||||
|
# CI/CD пайплайн (10-15 машин)
|
||||||
|
make lab-test LAB_SPEC=molecule/presets/cicd.yml
|
||||||
|
|
||||||
|
# Big Data кластер (12-18 машин)
|
||||||
|
make lab-test LAB_SPEC=molecule/presets/bigdata.yml
|
||||||
|
|
||||||
|
# Service Mesh (15-20 машин)
|
||||||
|
make lab-test LAB_SPEC=molecule/presets/servicemesh.yml
|
||||||
|
|
||||||
|
# Enterprise (18-20 машин)
|
||||||
|
make lab-test LAB_SPEC=molecule/presets/enterprise.yml
|
||||||
|
|
||||||
|
# Максимальный (20 машин)
|
||||||
|
make lab-test LAB_SPEC=molecule/presets/maximum.yml
|
||||||
|
```
|
||||||
|
|
||||||
### 3. Работа с Kubernetes
|
### 3. Работа с Kubernetes
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|||||||
120
molecule/presets/README.md
Normal file
120
molecule/presets/README.md
Normal file
@@ -0,0 +1,120 @@
|
|||||||
|
# Пресеты универсальной лаборатории
|
||||||
|
|
||||||
|
## Автор
|
||||||
|
Сергей Антропов
|
||||||
|
Сайт: 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`
|
||||||
|
|
||||||
|
## Использование
|
||||||
|
|
||||||
|
### Быстрый старт
|
||||||
|
```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`
|
||||||
120
molecule/presets/bigdata.yml
Normal file
120
molecule/presets/bigdata.yml
Normal file
@@ -0,0 +1,120 @@
|
|||||||
|
---
|
||||||
|
# ПРЕСЕТ: Big Data кластер (12-18 машин)
|
||||||
|
#
|
||||||
|
# Описание: Кластер для обработки больших данных с различными компонентами
|
||||||
|
# - 3 Hadoop NameNode (активный/резервный/журнал) - метаданные
|
||||||
|
# - 3 Hadoop DataNode - хранение данных
|
||||||
|
# - 1 Hive Metastore - метаданные таблиц
|
||||||
|
# - 1 Spark Master - управление Spark
|
||||||
|
# - 2 Spark Worker - обработка данных
|
||||||
|
# - 1 Kafka Broker - потоковая обработка
|
||||||
|
# - 1 Zookeeper - координация сервисов
|
||||||
|
# - 1 Elasticsearch - поиск и аналитика
|
||||||
|
# - 1 Kibana - визуализация данных
|
||||||
|
#
|
||||||
|
# Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/bigdata.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: namenode1
|
||||||
|
group: namenodes
|
||||||
|
family: debian
|
||||||
|
publish:
|
||||||
|
- "9870:9870"
|
||||||
|
|
||||||
|
- name: namenode2
|
||||||
|
group: namenodes
|
||||||
|
family: rhel
|
||||||
|
publish:
|
||||||
|
- "9871:9870"
|
||||||
|
|
||||||
|
- name: namenode3
|
||||||
|
group: namenodes
|
||||||
|
family: debian
|
||||||
|
publish:
|
||||||
|
- "9872:9870"
|
||||||
|
|
||||||
|
- name: datanode1
|
||||||
|
group: datanodes
|
||||||
|
family: rhel
|
||||||
|
publish:
|
||||||
|
- "9864:9864"
|
||||||
|
|
||||||
|
- name: datanode2
|
||||||
|
group: datanodes
|
||||||
|
family: debian
|
||||||
|
publish:
|
||||||
|
- "9865:9864"
|
||||||
|
|
||||||
|
- name: datanode3
|
||||||
|
group: datanodes
|
||||||
|
family: rhel
|
||||||
|
publish:
|
||||||
|
- "9866:9864"
|
||||||
|
|
||||||
|
- name: hive-metastore
|
||||||
|
group: metastores
|
||||||
|
family: debian
|
||||||
|
publish:
|
||||||
|
- "9083:9083"
|
||||||
|
|
||||||
|
- name: spark-master
|
||||||
|
group: spark
|
||||||
|
family: rhel
|
||||||
|
publish:
|
||||||
|
- "8080:8080"
|
||||||
|
|
||||||
|
- name: spark-worker1
|
||||||
|
group: spark
|
||||||
|
family: debian
|
||||||
|
publish:
|
||||||
|
- "8081:8080"
|
||||||
|
|
||||||
|
- name: spark-worker2
|
||||||
|
group: spark
|
||||||
|
family: rhel
|
||||||
|
publish:
|
||||||
|
- "8082:8080"
|
||||||
|
|
||||||
|
- name: kafka
|
||||||
|
group: streaming
|
||||||
|
family: debian
|
||||||
|
publish:
|
||||||
|
- "9092:9092"
|
||||||
|
|
||||||
|
- name: zookeeper
|
||||||
|
group: coordination
|
||||||
|
family: rhel
|
||||||
|
publish:
|
||||||
|
- "2181:2181"
|
||||||
|
|
||||||
|
- name: elasticsearch
|
||||||
|
group: search
|
||||||
|
family: debian
|
||||||
|
publish:
|
||||||
|
- "9200:9200"
|
||||||
|
|
||||||
|
- name: kibana
|
||||||
|
group: visualization
|
||||||
|
family: rhel
|
||||||
|
publish:
|
||||||
|
- "5601:5601"
|
||||||
100
molecule/presets/cicd.yml
Normal file
100
molecule/presets/cicd.yml
Normal file
@@ -0,0 +1,100 @@
|
|||||||
|
---
|
||||||
|
# ПРЕСЕТ: CI/CD пайплайн (10-15 машин)
|
||||||
|
#
|
||||||
|
# Описание: Полноценный CI/CD пайплайн с различными инструментами
|
||||||
|
# - 1 Git сервер (Gitea) - управление кодом
|
||||||
|
# - 2 CI сервера (Jenkins) - сборка и тестирование
|
||||||
|
# - 1 артефакт репозиторий (Nexus) - хранение артефактов
|
||||||
|
# - 1 Docker registry - хранение образов
|
||||||
|
# - 2 тестовые среды (staging, production) - развертывание
|
||||||
|
# - 1 мониторинг (Prometheus) - метрики пайплайна
|
||||||
|
# - 1 логирование (ELK Stack) - централизованные логи
|
||||||
|
#
|
||||||
|
# Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/cicd.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: git-server
|
||||||
|
group: scm
|
||||||
|
family: debian
|
||||||
|
publish:
|
||||||
|
- "3000:3000"
|
||||||
|
|
||||||
|
- name: jenkins1
|
||||||
|
group: ci
|
||||||
|
family: rhel
|
||||||
|
publish:
|
||||||
|
- "8080:8080"
|
||||||
|
|
||||||
|
- name: jenkins2
|
||||||
|
group: ci
|
||||||
|
family: debian
|
||||||
|
publish:
|
||||||
|
- "8081:8080"
|
||||||
|
|
||||||
|
- name: nexus
|
||||||
|
group: artifacts
|
||||||
|
family: rhel
|
||||||
|
publish:
|
||||||
|
- "8081:8081"
|
||||||
|
|
||||||
|
- name: docker-registry
|
||||||
|
group: registries
|
||||||
|
family: debian
|
||||||
|
publish:
|
||||||
|
- "5000:5000"
|
||||||
|
|
||||||
|
- name: staging
|
||||||
|
group: environments
|
||||||
|
family: rhel
|
||||||
|
publish:
|
||||||
|
- "8082:80"
|
||||||
|
|
||||||
|
- name: production
|
||||||
|
group: environments
|
||||||
|
family: debian
|
||||||
|
publish:
|
||||||
|
- "8083:80"
|
||||||
|
|
||||||
|
- name: monitoring
|
||||||
|
group: monitoring
|
||||||
|
family: rhel
|
||||||
|
publish:
|
||||||
|
- "9090:9090"
|
||||||
|
|
||||||
|
- name: elasticsearch
|
||||||
|
group: logging
|
||||||
|
family: debian
|
||||||
|
publish:
|
||||||
|
- "9200:9200"
|
||||||
|
|
||||||
|
- name: kibana
|
||||||
|
group: logging
|
||||||
|
family: rhel
|
||||||
|
publish:
|
||||||
|
- "5601:5601"
|
||||||
|
|
||||||
|
- name: logstash
|
||||||
|
group: logging
|
||||||
|
family: debian
|
||||||
|
publish:
|
||||||
|
- "5044:5044"
|
||||||
167
molecule/presets/enterprise.yml
Normal file
167
molecule/presets/enterprise.yml
Normal 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"
|
||||||
88
molecule/presets/ha.yml
Normal file
88
molecule/presets/ha.yml
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
---
|
||||||
|
# ПРЕСЕТ: Высокая доступность (6-10 машин)
|
||||||
|
#
|
||||||
|
# Описание: Кластер высокой доступности с репликацией и отказоустойчивостью
|
||||||
|
# - 2 веб-сервера (nginx) - активный/резервный
|
||||||
|
# - 2 базы данных (PostgreSQL) - мастер/слейв репликация
|
||||||
|
# - 2 кэш-сервера (Redis) - кластер с репликацией
|
||||||
|
# - 1 балансировщик (HAProxy) - с проверками здоровья
|
||||||
|
# - 1 мониторинг (Prometheus) - контроль состояния
|
||||||
|
# - 1 резервный мониторинг (Grafana) - визуализация
|
||||||
|
#
|
||||||
|
# Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/ha.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: haproxy
|
||||||
|
group: loadbalancers
|
||||||
|
family: rhel
|
||||||
|
publish:
|
||||||
|
- "80:80"
|
||||||
|
- "443:443"
|
||||||
|
|
||||||
|
- name: web1
|
||||||
|
group: webservers
|
||||||
|
family: debian
|
||||||
|
publish:
|
||||||
|
- "8081:80"
|
||||||
|
|
||||||
|
- name: web2
|
||||||
|
group: webservers
|
||||||
|
family: rhel
|
||||||
|
publish:
|
||||||
|
- "8082:80"
|
||||||
|
|
||||||
|
- 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: monitoring
|
||||||
|
group: monitoring
|
||||||
|
family: debian
|
||||||
|
publish:
|
||||||
|
- "9090:9090"
|
||||||
|
|
||||||
|
- name: grafana
|
||||||
|
group: monitoring
|
||||||
|
family: rhel
|
||||||
|
publish:
|
||||||
|
- "3000:3000"
|
||||||
99
molecule/presets/k8s-cluster.yml
Normal file
99
molecule/presets/k8s-cluster.yml
Normal file
@@ -0,0 +1,99 @@
|
|||||||
|
---
|
||||||
|
# ПРЕСЕТ: Kubernetes кластер (8-12 машин)
|
||||||
|
#
|
||||||
|
# Описание: Полноценный Kubernetes кластер с различными ролями
|
||||||
|
# - 3 master ноды (control-plane) - управление кластером
|
||||||
|
# - 3 worker ноды - выполнение workload
|
||||||
|
# - 1 etcd кластер (3 ноды) - хранение состояния
|
||||||
|
# - 1 ingress контроллер - маршрутизация трафика
|
||||||
|
# - 1 мониторинг (Prometheus) - метрики кластера
|
||||||
|
#
|
||||||
|
# Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/k8s-cluster.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: master1
|
||||||
|
group: masters
|
||||||
|
family: debian
|
||||||
|
publish:
|
||||||
|
- "6443:6443"
|
||||||
|
|
||||||
|
- name: master2
|
||||||
|
group: masters
|
||||||
|
family: rhel
|
||||||
|
publish:
|
||||||
|
- "6444:6443"
|
||||||
|
|
||||||
|
- name: master3
|
||||||
|
group: masters
|
||||||
|
family: debian
|
||||||
|
publish:
|
||||||
|
- "6445:6443"
|
||||||
|
|
||||||
|
- name: worker1
|
||||||
|
group: workers
|
||||||
|
family: rhel
|
||||||
|
publish:
|
||||||
|
- "30000:30000"
|
||||||
|
|
||||||
|
- name: worker2
|
||||||
|
group: workers
|
||||||
|
family: debian
|
||||||
|
publish:
|
||||||
|
- "30001:30000"
|
||||||
|
|
||||||
|
- name: worker3
|
||||||
|
group: workers
|
||||||
|
family: rhel
|
||||||
|
publish:
|
||||||
|
- "30002:30000"
|
||||||
|
|
||||||
|
- name: etcd1
|
||||||
|
group: etcd
|
||||||
|
family: debian
|
||||||
|
publish:
|
||||||
|
- "2379:2379"
|
||||||
|
|
||||||
|
- name: etcd2
|
||||||
|
group: etcd
|
||||||
|
family: rhel
|
||||||
|
publish:
|
||||||
|
- "2380:2379"
|
||||||
|
|
||||||
|
- name: etcd3
|
||||||
|
group: etcd
|
||||||
|
family: debian
|
||||||
|
publish:
|
||||||
|
- "2381:2379"
|
||||||
|
|
||||||
|
- name: ingress
|
||||||
|
group: ingress
|
||||||
|
family: rhel
|
||||||
|
publish:
|
||||||
|
- "80:80"
|
||||||
|
- "443:443"
|
||||||
|
|
||||||
|
- name: monitoring
|
||||||
|
group: monitoring
|
||||||
|
family: debian
|
||||||
|
publish:
|
||||||
|
- "9090:9090"
|
||||||
181
molecule/presets/maximum.yml
Normal file
181
molecule/presets/maximum.yml
Normal file
@@ -0,0 +1,181 @@
|
|||||||
|
---
|
||||||
|
# ПРЕСЕТ: Максимальный (20 машин)
|
||||||
|
#
|
||||||
|
# Описание: Максимально сложная инфраструктура для тестирования в экстремальных условиях
|
||||||
|
# - 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 Tracing (Jaeger) - трассировка
|
||||||
|
# - 1 Visualization (Grafana) - визуализация
|
||||||
|
# - 1 Backup сервер - резервное копирование
|
||||||
|
#
|
||||||
|
# Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/maximum.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: tracing
|
||||||
|
group: tracing
|
||||||
|
family: debian
|
||||||
|
publish:
|
||||||
|
- "16686:16686"
|
||||||
|
|
||||||
|
- name: grafana
|
||||||
|
group: visualization
|
||||||
|
family: rhel
|
||||||
|
publish:
|
||||||
|
- "3000:3000"
|
||||||
|
|
||||||
|
- name: backup
|
||||||
|
group: backup
|
||||||
|
family: debian
|
||||||
|
publish:
|
||||||
|
- "22:22"
|
||||||
77
molecule/presets/microservices.yml
Normal file
77
molecule/presets/microservices.yml
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
---
|
||||||
|
# ПРЕСЕТ: Микросервисы (5-8 машин)
|
||||||
|
#
|
||||||
|
# Описание: Архитектура микросервисов с разделением ответственности
|
||||||
|
# - 1 API Gateway (Kong/Nginx) - единая точка входа
|
||||||
|
# - 2 микросервиса (User Service, Order Service) - бизнес-логика
|
||||||
|
# - 1 база данных (PostgreSQL) - основная БД
|
||||||
|
# - 1 кэш (Redis) - для сессий
|
||||||
|
# - 1 очередь сообщений (RabbitMQ) - асинхронная обработка
|
||||||
|
# - 1 мониторинг (Prometheus) - метрики
|
||||||
|
#
|
||||||
|
# Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/microservices.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: api-gateway
|
||||||
|
group: gateways
|
||||||
|
family: rhel
|
||||||
|
publish:
|
||||||
|
- "80:80"
|
||||||
|
- "443:443"
|
||||||
|
|
||||||
|
- name: user-service
|
||||||
|
group: microservices
|
||||||
|
family: debian
|
||||||
|
publish:
|
||||||
|
- "8081:8080"
|
||||||
|
|
||||||
|
- name: order-service
|
||||||
|
group: microservices
|
||||||
|
family: rhel
|
||||||
|
publish:
|
||||||
|
- "8082:8080"
|
||||||
|
|
||||||
|
- name: database
|
||||||
|
group: databases
|
||||||
|
family: debian
|
||||||
|
publish:
|
||||||
|
- "5432:5432"
|
||||||
|
|
||||||
|
- name: cache
|
||||||
|
group: caches
|
||||||
|
family: rhel
|
||||||
|
publish:
|
||||||
|
- "6379:6379"
|
||||||
|
|
||||||
|
- name: message-queue
|
||||||
|
group: queues
|
||||||
|
family: debian
|
||||||
|
publish:
|
||||||
|
- "5672:5672"
|
||||||
|
- "15672:15672"
|
||||||
|
|
||||||
|
- name: monitoring
|
||||||
|
group: monitoring
|
||||||
|
family: rhel
|
||||||
|
publish:
|
||||||
|
- "9090:9090"
|
||||||
48
molecule/presets/minimal.yml
Normal file
48
molecule/presets/minimal.yml
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
---
|
||||||
|
# ПРЕСЕТ: Минимальная лаборатория (1-3 машины)
|
||||||
|
#
|
||||||
|
# Описание: Базовая конфигурация для простых тестов Ansible ролей
|
||||||
|
# - 1 контроллер (Debian)
|
||||||
|
# - 1 веб-сервер (RHEL)
|
||||||
|
# - 1 база данных (Debian)
|
||||||
|
#
|
||||||
|
# Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/minimal.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: controller
|
||||||
|
group: controllers
|
||||||
|
family: debian
|
||||||
|
publish:
|
||||||
|
- "8080:80"
|
||||||
|
|
||||||
|
- name: webserver
|
||||||
|
group: webservers
|
||||||
|
family: rhel
|
||||||
|
publish:
|
||||||
|
- "80:80"
|
||||||
|
|
||||||
|
- name: database
|
||||||
|
group: databases
|
||||||
|
family: debian
|
||||||
|
publish:
|
||||||
|
- "5432:5432"
|
||||||
135
molecule/presets/servicemesh.yml
Normal file
135
molecule/presets/servicemesh.yml
Normal file
@@ -0,0 +1,135 @@
|
|||||||
|
---
|
||||||
|
# ПРЕСЕТ: Service Mesh (15-20 машин)
|
||||||
|
#
|
||||||
|
# Описание: Полноценный service mesh с Istio и множественными сервисами
|
||||||
|
# - 1 Istio Control Plane - управление mesh
|
||||||
|
# - 1 Istio Ingress Gateway - входная точка
|
||||||
|
# - 1 Istio Egress Gateway - выходная точка
|
||||||
|
# - 3 Frontend сервиса - пользовательский интерфейс
|
||||||
|
# - 3 Backend API сервиса - бизнес-логика
|
||||||
|
# - 2 Database сервиса - хранение данных
|
||||||
|
# - 1 Cache сервис - кэширование
|
||||||
|
# - 1 Message Queue - асинхронная обработка
|
||||||
|
# - 1 Monitoring (Prometheus) - метрики mesh
|
||||||
|
# - 1 Tracing (Jaeger) - трассировка запросов
|
||||||
|
# - 1 Visualization (Kiali) - визуализация mesh
|
||||||
|
#
|
||||||
|
# Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/servicemesh.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: istio-control
|
||||||
|
group: istio
|
||||||
|
family: debian
|
||||||
|
publish:
|
||||||
|
- "15010:15010"
|
||||||
|
|
||||||
|
- name: istio-ingress
|
||||||
|
group: istio
|
||||||
|
family: rhel
|
||||||
|
publish:
|
||||||
|
- "80:80"
|
||||||
|
- "443:443"
|
||||||
|
|
||||||
|
- name: istio-egress
|
||||||
|
group: istio
|
||||||
|
family: debian
|
||||||
|
publish:
|
||||||
|
- "15443:15443"
|
||||||
|
|
||||||
|
- name: frontend1
|
||||||
|
group: frontend
|
||||||
|
family: rhel
|
||||||
|
publish:
|
||||||
|
- "3001:3000"
|
||||||
|
|
||||||
|
- name: frontend2
|
||||||
|
group: frontend
|
||||||
|
family: debian
|
||||||
|
publish:
|
||||||
|
- "3002:3000"
|
||||||
|
|
||||||
|
- name: frontend3
|
||||||
|
group: frontend
|
||||||
|
family: rhel
|
||||||
|
publish:
|
||||||
|
- "3003:3000"
|
||||||
|
|
||||||
|
- name: api1
|
||||||
|
group: backend
|
||||||
|
family: debian
|
||||||
|
publish:
|
||||||
|
- "8001:8000"
|
||||||
|
|
||||||
|
- name: api2
|
||||||
|
group: backend
|
||||||
|
family: rhel
|
||||||
|
publish:
|
||||||
|
- "8002:8000"
|
||||||
|
|
||||||
|
- name: api3
|
||||||
|
group: backend
|
||||||
|
family: debian
|
||||||
|
publish:
|
||||||
|
- "8003:8000"
|
||||||
|
|
||||||
|
- name: database1
|
||||||
|
group: databases
|
||||||
|
family: rhel
|
||||||
|
publish:
|
||||||
|
- "5432:5432"
|
||||||
|
|
||||||
|
- name: database2
|
||||||
|
group: databases
|
||||||
|
family: debian
|
||||||
|
publish:
|
||||||
|
- "5433:5432"
|
||||||
|
|
||||||
|
- name: cache
|
||||||
|
group: caches
|
||||||
|
family: rhel
|
||||||
|
publish:
|
||||||
|
- "6379:6379"
|
||||||
|
|
||||||
|
- name: message-queue
|
||||||
|
group: queues
|
||||||
|
family: debian
|
||||||
|
publish:
|
||||||
|
- "5672:5672"
|
||||||
|
|
||||||
|
- name: monitoring
|
||||||
|
group: monitoring
|
||||||
|
family: rhel
|
||||||
|
publish:
|
||||||
|
- "9090:9090"
|
||||||
|
|
||||||
|
- name: tracing
|
||||||
|
group: tracing
|
||||||
|
family: debian
|
||||||
|
publish:
|
||||||
|
- "16686:16686"
|
||||||
|
|
||||||
|
- name: kiali
|
||||||
|
group: visualization
|
||||||
|
family: rhel
|
||||||
|
publish:
|
||||||
|
- "20001:20001"
|
||||||
62
molecule/presets/webapp.yml
Normal file
62
molecule/presets/webapp.yml
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
---
|
||||||
|
# ПРЕСЕТ: Веб-приложение (3-5 машин)
|
||||||
|
#
|
||||||
|
# Описание: Классическая архитектура веб-приложения
|
||||||
|
# - 2 веб-сервера (nginx/apache) - балансировка нагрузки
|
||||||
|
# - 1 база данных (PostgreSQL) - основная БД
|
||||||
|
# - 1 кэш-сервер (Redis) - для сессий и кэширования
|
||||||
|
# - 1 обратный прокси (HAProxy) - балансировщик
|
||||||
|
#
|
||||||
|
# Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/webapp.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: haproxy
|
||||||
|
group: loadbalancers
|
||||||
|
family: rhel
|
||||||
|
publish:
|
||||||
|
- "80:80"
|
||||||
|
- "443:443"
|
||||||
|
|
||||||
|
- name: web1
|
||||||
|
group: webservers
|
||||||
|
family: debian
|
||||||
|
publish:
|
||||||
|
- "8081:80"
|
||||||
|
|
||||||
|
- name: web2
|
||||||
|
group: webservers
|
||||||
|
family: rhel
|
||||||
|
publish:
|
||||||
|
- "8082:80"
|
||||||
|
|
||||||
|
- name: database
|
||||||
|
group: databases
|
||||||
|
family: debian
|
||||||
|
publish:
|
||||||
|
- "5432:5432"
|
||||||
|
|
||||||
|
- name: cache
|
||||||
|
group: caches
|
||||||
|
family: rhel
|
||||||
|
publish:
|
||||||
|
- "6379:6379"
|
||||||
Reference in New Issue
Block a user