From 1909746098e4156aba03a2d6cf4911a51c524827 Mon Sep 17 00:00:00 2001 From: Sergey Antropoff Date: Wed, 22 Oct 2025 15:36:48 +0300 Subject: [PATCH] =?UTF-8?q?feat:=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B0=20=D0=B0=D0=B2=D1=82=D0=BE=D0=BC=D0=B0=D1=82?= =?UTF-8?q?=D0=B8=D1=87=D0=B5=D1=81=D0=BA=D0=B0=D1=8F=20=D0=B8=D0=BD=D0=B8?= =?UTF-8?q?=D1=86=D0=B8=D0=B0=D0=BB=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D1=8F=20?= =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=B5=D0=BA=D1=82=D0=B0=20=D0=BF=D1=80=D0=B8?= =?UTF-8?q?=20=D0=BF=D0=B5=D1=80=D0=B2=D0=BE=D0=BC=20=D0=B7=D0=B0=D0=BF?= =?UTF-8?q?=D1=83=D1=81=D0=BA=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Добавлена проверка инициализации проекта (check-init) - Автоматический запуск инициализации при первом запуске - Интерактивная настройка всех параметров проекта - Создание файлов .env, vault/.vault, molecule/presets/minimal.yml - Проверка наличия необходимых файлов и папок Проверка инициализации: - Проверка наличия .env файла - Проверка наличия vault/.vault файла - Проверка наличия папки molecule/presets - Автоматический запуск инициализации при отсутствии файлов Интерактивная инициализация: - Настройка основных параметров проекта (название, версия, автор, сайт) - Настройка Docker (образ, сеть) - Настройка лаборатории (сценарий, пресет) - Настройка Kubernetes (контекст, версии Istio/Kind) - Настройка путей (папка ролей, файл vault) - Создание файла .env с всеми настройками - Создание vault файлов - Создание минимального пресета лаборатории - Создание необходимых папок Преимущества: - Автоматическая инициализация при первом запуске - Интерактивная настройка всех параметров - Значения по умолчанию для быстрой настройки - Создание всех необходимых файлов и папок - Проверка инициализации при каждом запуске - Нет повторной инициализации после настройки Автор: Сергей Антропов Сайт: https://devops.org.ru --- Makefile | 143 +++++++++++++++++++++- molecule/presets/bigdata.yml | 120 ------------------ molecule/presets/cicd.yml | 100 --------------- molecule/presets/dind-compose.yml | 58 --------- molecule/presets/dind-simple.yml | 51 -------- molecule/presets/dind-swarm.yml | 65 ---------- molecule/presets/dood-mixed.yml | 89 -------------- molecule/presets/dood-simple.yml | 57 --------- molecule/presets/enterprise.yml | 167 ------------------------- molecule/presets/ha.yml | 88 -------------- molecule/presets/k8s-cluster.yml | 99 --------------- molecule/presets/k8s-istio-full.yml | 55 --------- molecule/presets/k8s-kind.yml | 46 ------- molecule/presets/k8s-multi.yml | 81 ------------- molecule/presets/k8s-single.yml | 46 ------- molecule/presets/maximum.yml | 181 ---------------------------- molecule/presets/microservices.yml | 77 ------------ molecule/presets/minimal.yml | 51 ++------ molecule/presets/mixed-full.yml | 102 ---------------- molecule/presets/mixed-k8s-dind.yml | 69 ----------- molecule/presets/mixed-k8s-dood.yml | 75 ------------ molecule/presets/servicemesh.yml | 135 --------------------- molecule/presets/webapp.yml | 62 ---------- 23 files changed, 152 insertions(+), 1865 deletions(-) delete mode 100644 molecule/presets/bigdata.yml delete mode 100644 molecule/presets/cicd.yml delete mode 100644 molecule/presets/dind-compose.yml delete mode 100644 molecule/presets/dind-simple.yml delete mode 100644 molecule/presets/dind-swarm.yml delete mode 100644 molecule/presets/dood-mixed.yml delete mode 100644 molecule/presets/dood-simple.yml delete mode 100644 molecule/presets/enterprise.yml delete mode 100644 molecule/presets/ha.yml delete mode 100644 molecule/presets/k8s-cluster.yml delete mode 100644 molecule/presets/k8s-istio-full.yml delete mode 100644 molecule/presets/k8s-kind.yml delete mode 100644 molecule/presets/k8s-multi.yml delete mode 100644 molecule/presets/k8s-single.yml delete mode 100644 molecule/presets/maximum.yml delete mode 100644 molecule/presets/microservices.yml delete mode 100644 molecule/presets/mixed-full.yml delete mode 100644 molecule/presets/mixed-k8s-dind.yml delete mode 100644 molecule/presets/mixed-k8s-dood.yml delete mode 100644 molecule/presets/servicemesh.yml delete mode 100644 molecule/presets/webapp.yml diff --git a/Makefile b/Makefile index 25dd329..1696a9a 100644 --- a/Makefile +++ b/Makefile @@ -76,7 +76,7 @@ help: ## Показать справку по всем командам @echo "$(YELLOW)Подробная документация: docs/$(RESET)" .PHONY: menu -menu: check-whiptail ## Интерактивное главное меню +menu: check-whiptail check-init ## Интерактивное главное меню @while true; do \ CHOICE=$$(whiptail --title "Ansible Template - Универсальная лаборатория" \ --menu "Выберите действие:" 20 60 12 \ @@ -112,6 +112,147 @@ menu: check-whiptail ## Интерактивное главное меню esac; \ done +# ============================================================================= +# ПРОВЕРКИ ИНИЦИАЛИЗАЦИИ +# ============================================================================= + +.PHONY: check-init +check-init: ## Проверить инициализацию проекта + @if [ ! -f .env ] || [ ! -f vault/.vault ] || [ ! -d molecule/presets ]; then \ + echo "$(YELLOW)🔧 Первый запуск проекта - требуется инициализация$(RESET)"; \ + echo "$(CYAN)🚀 Добро пожаловать в Ansible Template!$(RESET)"; \ + echo "$(BLUE)Добро пожаловать в универсальную лабораторию для тестирования Ansible ролей!$(RESET)"; \ + echo "$(BLUE)Для начала работы необходимо выполнить инициализацию проекта.$(RESET)"; \ + echo "$(BLUE)Это займет всего несколько минут и включает:$(RESET)"; \ + echo "$(BLUE)• Настройку переменных окружения$(RESET)"; \ + echo "$(BLUE)• Создание vault файлов$(RESET)"; \ + echo "$(BLUE)• Подготовку пресетов лаборатории$(RESET)"; \ + echo ""; \ + echo "$(YELLOW)Нажмите Enter для начала инициализации...$(RESET)"; \ + read -r; \ + make init-interactive; \ + fi + +.PHONY: init-interactive +init-interactive: ## Интерактивная инициализация проекта + @echo "$(CYAN)🚀 Инициализация проекта Ansible Template$(RESET)"; \ + echo "$(BLUE)📝 Настройка основных параметров проекта$(RESET)"; \ + echo "$(YELLOW)Используйте значения по умолчанию (нажмите Enter) или введите свои значения$(RESET)"; \ + echo ""; \ + echo -n "$(BLUE)Название проекта [ansible-template]: $(RESET)"; \ + read -r PROJECT_NAME; \ + PROJECT_NAME=$${PROJECT_NAME:-ansible-template}; \ + echo -n "$(BLUE)Версия проекта [0.1.0]: $(RESET)"; \ + read -r VERSION; \ + VERSION=$${VERSION:-0.1.0}; \ + echo -n "$(BLUE)Автор проекта [Сергей Антропов]: $(RESET)"; \ + read -r AUTHOR; \ + AUTHOR=$${AUTHOR:-Сергей Антропов}; \ + echo -n "$(BLUE)Сайт проекта [https://devops.org.ru]: $(RESET)"; \ + read -r SITE; \ + SITE=$${SITE:-https://devops.org.ru}; \ + echo ""; \ + echo "$(BLUE)🐳 Настройка Docker$(RESET)"; \ + echo -n "$(BLUE)Docker образ для Ansible [quay.io/ansible/creator-ee:latest]: $(RESET)"; \ + read -r DOCKER_IMAGE; \ + DOCKER_IMAGE=$${DOCKER_IMAGE:-quay.io/ansible/creator-ee:latest}; \ + echo -n "$(BLUE)Docker сеть [labnet]: $(RESET)"; \ + read -r DOCKER_NETWORK; \ + DOCKER_NETWORK=$${DOCKER_NETWORK:-labnet}; \ + echo ""; \ + echo "$(BLUE)🧪 Настройка лаборатории$(RESET)"; \ + echo -n "$(BLUE)Сценарий Molecule [universal]: $(RESET)"; \ + read -r SCENARIO; \ + SCENARIO=$${SCENARIO:-universal}; \ + echo -n "$(BLUE)Пресет лаборатории [molecule/presets/minimal.yml]: $(RESET)"; \ + read -r LAB_SPEC; \ + LAB_SPEC=$${LAB_SPEC:-molecule/presets/minimal.yml}; \ + echo ""; \ + echo "$(BLUE)☸️ Настройка Kubernetes$(RESET)"; \ + echo -n "$(BLUE)Kubernetes контекст [kind-lab]: $(RESET)"; \ + read -r KUBE_CONTEXT; \ + KUBE_CONTEXT=$${KUBE_CONTEXT:-kind-lab}; \ + echo -n "$(BLUE)Версия Istio [1.22.1]: $(RESET)"; \ + read -r ISTIO_VERSION; \ + ISTIO_VERSION=$${ISTIO_VERSION:-1.22.1}; \ + echo -n "$(BLUE)Версия Kind [v0.23.0]: $(RESET)"; \ + read -r KIND_VERSION; \ + KIND_VERSION=$${KIND_VERSION:-v0.23.0}; \ + echo ""; \ + echo "$(BLUE)📁 Настройка путей$(RESET)"; \ + echo -n "$(BLUE)Папка ролей [./roles]: $(RESET)"; \ + read -r ROLES_DIR; \ + ROLES_DIR=$${ROLES_DIR:-./roles}; \ + echo -n "$(BLUE)Файл пароля vault [vault/.vault]: $(RESET)"; \ + read -r VAULT_PASSWORD_FILE; \ + VAULT_PASSWORD_FILE=$${VAULT_PASSWORD_FILE:-vault/.vault}; \ + echo ""; \ + echo "$(BLUE)📝 Создание файла .env$(RESET)"; \ + echo "# Ansible Template - Универсальная лаборатория" > .env; \ + echo "# Автор: $$AUTHOR" >> .env; \ + echo "# Сайт: $$SITE" >> .env; \ + echo "# Версия: $$VERSION" >> .env; \ + echo "" >> .env; \ + echo "# Основные переменные" >> .env; \ + echo "PROJECT_NAME=$$PROJECT_NAME" >> .env; \ + echo "VERSION=$$VERSION" >> .env; \ + echo "AUTHOR=$$AUTHOR" >> .env; \ + echo "SITE=$$SITE" >> .env; \ + echo "" >> .env; \ + echo "# Docker переменные" >> .env; \ + echo "DOCKER_IMAGE=$$DOCKER_IMAGE" >> .env; \ + echo "DOCKER_COMPOSE=docker compose" >> .env; \ + echo "DOCKER_NETWORK=$$DOCKER_NETWORK" >> .env; \ + echo "" >> .env; \ + echo "# Molecule переменные" >> .env; \ + echo "SCENARIO=$$SCENARIO" >> .env; \ + echo "LAB_SPEC=$$LAB_SPEC" >> .env; \ + echo "MOLECULE_EPHEMERAL_DIRECTORY=/tmp/molecule" >> .env; \ + echo "" >> .env; \ + echo "# Kubernetes переменные" >> .env; \ + echo "KUBE_CONTEXT=$$KUBE_CONTEXT" >> .env; \ + echo "ISTIO_VERSION=$$ISTIO_VERSION" >> .env; \ + echo "KIND_VERSION=$$KIND_VERSION" >> .env; \ + echo "" >> .env; \ + echo "# Переменные окружения" >> .env; \ + echo "ENV_FILE=.env" >> .env; \ + echo "ROLES_DIR=$$ROLES_DIR" >> .env; \ + echo "VAULT_PASSWORD_FILE=$$VAULT_PASSWORD_FILE" >> .env; \ + echo "$(BLUE)🔐 Создание vault файлов$(RESET)"; \ + mkdir -p vault; \ + echo "ansible-vault-password" > vault/.vault; \ + echo "$(BLUE)📋 Создание пресетов лаборатории$(RESET)"; \ + mkdir -p molecule/presets; \ + echo "---" > molecule/presets/minimal.yml; \ + echo "# Минимальный пресет лаборатории" >> molecule/presets/minimal.yml; \ + echo "# Автор: $$AUTHOR" >> molecule/presets/minimal.yml; \ + echo "# Сайт: $$SITE" >> molecule/presets/minimal.yml; \ + echo "" >> molecule/presets/minimal.yml; \ + echo "hosts:" >> molecule/presets/minimal.yml; \ + echo " - name: host1" >> molecule/presets/minimal.yml; \ + echo " family: debian" >> molecule/presets/minimal.yml; \ + echo " groups: [all]" >> molecule/presets/minimal.yml; \ + echo "" >> molecule/presets/minimal.yml; \ + echo "features:" >> molecule/presets/minimal.yml; \ + echo " docker: true" >> molecule/presets/minimal.yml; \ + echo " dind: false" >> molecule/presets/minimal.yml; \ + echo " k8s: false" >> molecule/presets/minimal.yml; \ + echo " istio: false" >> molecule/presets/minimal.yml; \ + echo " monitoring: false" >> molecule/presets/minimal.yml; \ + echo " chaos: false" >> molecule/presets/minimal.yml; \ + echo "$(BLUE)📁 Создание необходимых папок$(RESET)"; \ + mkdir -p roles molecule/universal reports docs; \ + echo ""; \ + echo "$(GREEN)✅ Инициализация проекта завершена!$(RESET)"; \ + echo "$(GREEN)Созданы файлы:$(RESET)"; \ + echo "$(GREEN)• .env - переменные окружения$(RESET)"; \ + echo "$(GREEN)• vault/.vault - пароль vault$(RESET)"; \ + echo "$(GREEN)• molecule/presets/minimal.yml - минимальный пресет$(RESET)"; \ + echo ""; \ + echo "$(YELLOW)Теперь вы можете использовать все возможности лаборатории!$(RESET)"; \ + echo "$(YELLOW)Нажмите Enter для продолжения...$(RESET)"; \ + read -r + # ============================================================================= # ИНТЕРАКТИВНЫЕ МЕНЮ # ============================================================================= diff --git a/molecule/presets/bigdata.yml b/molecule/presets/bigdata.yml deleted file mode 100644 index 7c19c10..0000000 --- a/molecule/presets/bigdata.yml +++ /dev/null @@ -1,120 +0,0 @@ ---- -# ПРЕСЕТ: 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" diff --git a/molecule/presets/cicd.yml b/molecule/presets/cicd.yml deleted file mode 100644 index 169a12b..0000000 --- a/molecule/presets/cicd.yml +++ /dev/null @@ -1,100 +0,0 @@ ---- -# ПРЕСЕТ: 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" diff --git a/molecule/presets/dind-compose.yml b/molecule/presets/dind-compose.yml deleted file mode 100644 index a5d8568..0000000 --- a/molecule/presets/dind-compose.yml +++ /dev/null @@ -1,58 +0,0 @@ ---- -# ПРЕСЕТ: Docker-in-Docker Compose (4 DinD контейнера) -# -# Описание: DinD контейнеры для тестирования Docker Compose стека -# - 4 DinD контейнера с различными стеками -# - Тестирование multi-container приложений -# - Различные версии Docker Compose -# -# Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/dind-compose.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: compose-web - type: dind - group: compose - publish: - - "2375:2375" # Docker API - - "8080:80" # Web port - - - name: compose-api - type: dind - group: compose - publish: - - "2376:2375" # Docker API - - "8081:3000" # API port - - - name: compose-db - type: dind - group: compose - publish: - - "2377:2375" # Docker API - - "8082:5432" # DB port - - - name: compose-cache - type: dind - group: compose - publish: - - "2378:2375" # Docker API - - "8083:6379" # Cache port diff --git a/molecule/presets/dind-simple.yml b/molecule/presets/dind-simple.yml deleted file mode 100644 index 5f51dbc..0000000 --- a/molecule/presets/dind-simple.yml +++ /dev/null @@ -1,51 +0,0 @@ ---- -# ПРЕСЕТ: Docker-in-Docker Simple (3 DinD контейнера) -# -# Описание: Простая конфигурация DinD для тестирования Docker ролей -# - 3 DinD контейнера с различными конфигурациями -# - Изолированные Docker среды -# - Тестирование Docker Compose, Docker Swarm -# -# Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/dind-simple.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: dind1 - type: dind - group: dind - publish: - - "2375:2375" # Docker API - - "8080:8080" # App port - - - name: dind2 - type: dind - group: dind - publish: - - "2376:2375" # Docker API - - "8081:8080" # App port - - - name: dind3 - type: dind - group: dind - publish: - - "2377:2375" # Docker API - - "8082:8080" # App port diff --git a/molecule/presets/dind-swarm.yml b/molecule/presets/dind-swarm.yml deleted file mode 100644 index 907452e..0000000 --- a/molecule/presets/dind-swarm.yml +++ /dev/null @@ -1,65 +0,0 @@ ---- -# ПРЕСЕТ: Docker-in-Docker Swarm (5 DinD контейнеров) -# -# Описание: Docker Swarm кластер для тестирования оркестрации -# - 1 Manager + 4 Worker узла -# - Docker Swarm режим -# - Тестирование сервисов, стеков, секретов -# -# Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/dind-swarm.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: swarm-manager - type: dind - group: swarm - publish: - - "2375:2375" # Docker API - - "8080:8080" # App port - - - name: swarm-worker1 - type: dind - group: swarm - publish: - - "2376:2375" # Docker API - - "8081:8080" # App port - - - name: swarm-worker2 - type: dind - group: swarm - publish: - - "2377:2375" # Docker API - - "8082:8080" # App port - - - name: swarm-worker3 - type: dind - group: swarm - publish: - - "2378:2375" # Docker API - - "8083:8080" # App port - - - name: swarm-worker4 - type: dind - group: swarm - publish: - - "2379:2375" # Docker API - - "8084:8080" # App port diff --git a/molecule/presets/dood-mixed.yml b/molecule/presets/dood-mixed.yml deleted file mode 100644 index b0ccd24..0000000 --- a/molecule/presets/dood-mixed.yml +++ /dev/null @@ -1,89 +0,0 @@ ---- -# ПРЕСЕТ: Docker-outside-of-Docker Mixed (5 DOoD + 2 systemd) -# -# Описание: Смешанная конфигурация DOoD и systemd контейнеров -# - 5 DOoD контейнеров для Docker операций -# - 2 systemd контейнера для системных ролей -# - Тестирование гибридных сценариев -# -# Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/dood-mixed.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: - # DOoD контейнеры - - name: dood-web - type: dood - family: debian - group: dood - publish: - - "8080:80" - env: - DOCKER_HOST: "unix:///var/run/docker.sock" - - - name: dood-api - type: dood - family: rhel - group: dood - publish: - - "8081:3000" - env: - DOCKER_HOST: "unix:///var/run/docker.sock" - - - name: dood-db - type: dood - family: debian - group: dood - publish: - - "8082:5432" - env: - DOCKER_HOST: "unix:///var/run/docker.sock" - - - name: dood-cache - type: dood - family: rhel - group: dood - publish: - - "8083:6379" - env: - DOCKER_HOST: "unix:///var/run/docker.sock" - - - name: dood-queue - type: dood - family: debian - group: dood - publish: - - "8084:5672" - env: - DOCKER_HOST: "unix:///var/run/docker.sock" - - # Systemd контейнеры - - name: systemd-monitor - family: rhel - group: monitoring - publish: - - "9090:9090" - - - name: systemd-logs - family: debian - group: logging - publish: - - "5601:5601" diff --git a/molecule/presets/dood-simple.yml b/molecule/presets/dood-simple.yml deleted file mode 100644 index 522e476..0000000 --- a/molecule/presets/dood-simple.yml +++ /dev/null @@ -1,57 +0,0 @@ ---- -# ПРЕСЕТ: Docker-outside-of-Docker Simple (3 DOoD контейнера) -# -# Описание: Простая конфигурация DOoD для тестирования Docker ролей -# - 3 DOoD контейнера с доступом к Docker daemon хоста -# - Тестирование Docker ролей без изоляции -# - Различные семейства ОС -# -# Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/dood-simple.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: dood1 - type: dood - family: debian - group: dood - publish: - - "8080:8080" # App port - env: - DOCKER_HOST: "unix:///var/run/docker.sock" - - - name: dood2 - type: dood - family: rhel - group: dood - publish: - - "8081:8080" # App port - env: - DOCKER_HOST: "unix:///var/run/docker.sock" - - - name: dood3 - type: dood - family: debian - group: dood - publish: - - "8082:8080" # App port - env: - DOCKER_HOST: "unix:///var/run/docker.sock" diff --git a/molecule/presets/enterprise.yml b/molecule/presets/enterprise.yml deleted file mode 100644 index 1538a2b..0000000 --- a/molecule/presets/enterprise.yml +++ /dev/null @@ -1,167 +0,0 @@ ---- -# ПРЕСЕТ: 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" diff --git a/molecule/presets/ha.yml b/molecule/presets/ha.yml deleted file mode 100644 index 631b10e..0000000 --- a/molecule/presets/ha.yml +++ /dev/null @@ -1,88 +0,0 @@ ---- -# ПРЕСЕТ: Высокая доступность (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" diff --git a/molecule/presets/k8s-cluster.yml b/molecule/presets/k8s-cluster.yml deleted file mode 100644 index ae910c4..0000000 --- a/molecule/presets/k8s-cluster.yml +++ /dev/null @@ -1,99 +0,0 @@ ---- -# ПРЕСЕТ: 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" diff --git a/molecule/presets/k8s-istio-full.yml b/molecule/presets/k8s-istio-full.yml deleted file mode 100644 index f310a27..0000000 --- a/molecule/presets/k8s-istio-full.yml +++ /dev/null @@ -1,55 +0,0 @@ ---- -# ПРЕСЕТ: Kubernetes + Istio Full Stack (1 кластер с полным стеком) -# -# Описание: Полноценный Kubernetes кластер с полным стеком Istio -# - 1 Kind кластер с 3 workers -# - Полный Istio service mesh с Kiali -# - Prometheus + Grafana для мониторинга -# - Jaeger для трассировки -# - Все аддоны включены -# -# Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/k8s-istio-full.yml -# -# Автор: Сергей Антропов -# Сайт: https://devops.org.ru - -docker_network: labnet - -kind_clusters: - - name: istio-full - workers: 3 - api_port: 6443 - addons: - ingress_nginx: true - metrics_server: true - istio: true - kiali: true - prometheus_stack: true - ingress_host_http_port: 8081 - ingress_host_https_port: 8443 - -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: k8s-controller - group: controllers - family: debian - publish: - - "6443:6443" - - "9090:9090" # Prometheus - - "3000:3000" # Grafana - - "16686:16686" # Jaeger - - "20001:20001" # Kiali diff --git a/molecule/presets/k8s-kind.yml b/molecule/presets/k8s-kind.yml deleted file mode 100644 index 1070709..0000000 --- a/molecule/presets/k8s-kind.yml +++ /dev/null @@ -1,46 +0,0 @@ ---- -# Пресет для Kubernetes лаборатории с Kind кластерами -# Автор: Сергей Антропов -# Сайт: https://devops.org.ru - -# Сеть для лаборатории -docker_network: labnet - -# Kind кластеры -kind_clusters: - - name: lab - workers: 2 - api_port: 6443 - addons: - ingress_nginx: true - metrics_server: true - istio: true - kiali: true - prometheus_stack: true - ingress_host_http_port: 8081 - ingress_host_https_port: 8443 - -# Образы для разных семейств ОС -images: - debian: "ghcr.io/ansible-community/molecule-ubuntu-systemd:jammy" - rhel: "quay.io/centos/centos:stream9-systemd" - -# Настройки по умолчанию для systemd контейнеров -systemd_defaults: - privileged: true - command: "/sbin/init" - volumes: - - "/sys/fs/cgroup:/sys/fs/cgroup:ro" - tmpfs: - - "/run" - - "/run/lock" - capabilities: - - "SYS_ADMIN" - -# Определение хостов лаборатории (минимальный набор для k8s) -hosts: - - name: k8s-controller - group: controllers - family: debian - publish: - - "6443:6443" diff --git a/molecule/presets/k8s-multi.yml b/molecule/presets/k8s-multi.yml deleted file mode 100644 index 5a3d098..0000000 --- a/molecule/presets/k8s-multi.yml +++ /dev/null @@ -1,81 +0,0 @@ ---- -# ПРЕСЕТ: Kubernetes Multi-Cluster (3 кластера) -# -# Описание: Несколько Kind кластеров для тестирования мульти-кластерных сценариев -# - 3 Kind кластера: dev, staging, prod -# - Различные конфигурации для каждого окружения -# - Полный стек мониторинга и service mesh -# -# Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/k8s-multi.yml -# -# Автор: Сергей Антропов -# Сайт: https://devops.org.ru - -docker_network: labnet - -kind_clusters: - - name: dev - workers: 1 - api_port: 6443 - addons: - ingress_nginx: true - metrics_server: true - ingress_host_http_port: 8081 - ingress_host_https_port: 8443 - - - name: staging - workers: 2 - api_port: 6444 - addons: - ingress_nginx: true - metrics_server: true - istio: true - kiali: true - ingress_host_http_port: 8082 - ingress_host_https_port: 8444 - - - name: prod - workers: 3 - api_port: 6445 - addons: - ingress_nginx: true - metrics_server: true - istio: true - kiali: true - prometheus_stack: true - ingress_host_http_port: 8083 - ingress_host_https_port: 8445 - -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: k8s-dev-controller - group: controllers - family: debian - publish: - - "6443:6443" - - - name: k8s-staging-controller - group: controllers - family: rhel - publish: - - "6444:6444" - - - name: k8s-prod-controller - group: controllers - family: debian - publish: - - "6445:6445" diff --git a/molecule/presets/k8s-single.yml b/molecule/presets/k8s-single.yml deleted file mode 100644 index 68f921c..0000000 --- a/molecule/presets/k8s-single.yml +++ /dev/null @@ -1,46 +0,0 @@ ---- -# ПРЕСЕТ: Kubernetes Single Node (1 кластер) -# -# Описание: Одиночный Kind кластер для простого тестирования K8s ролей -# - 1 Kind кластер с 1 worker -# - Базовые аддоны: Ingress NGINX, Metrics Server -# - Простая конфигурация для быстрого старта -# -# Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/k8s-single.yml -# -# Автор: Сергей Антропов -# Сайт: https://devops.org.ru - -docker_network: labnet - -kind_clusters: - - name: single - workers: 1 - api_port: 6443 - addons: - ingress_nginx: true - metrics_server: true - ingress_host_http_port: 8081 - ingress_host_https_port: 8443 - -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: k8s-controller - group: controllers - family: debian - publish: - - "6443:6443" diff --git a/molecule/presets/maximum.yml b/molecule/presets/maximum.yml deleted file mode 100644 index e9873a3..0000000 --- a/molecule/presets/maximum.yml +++ /dev/null @@ -1,181 +0,0 @@ ---- -# ПРЕСЕТ: Максимальный (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" diff --git a/molecule/presets/microservices.yml b/molecule/presets/microservices.yml deleted file mode 100644 index 69bbcde..0000000 --- a/molecule/presets/microservices.yml +++ /dev/null @@ -1,77 +0,0 @@ ---- -# ПРЕСЕТ: Микросервисы (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" diff --git a/molecule/presets/minimal.yml b/molecule/presets/minimal.yml index 603a681..5a0ea9f 100644 --- a/molecule/presets/minimal.yml +++ b/molecule/presets/minimal.yml @@ -1,48 +1,17 @@ --- -# ПРЕСЕТ: Минимальная лаборатория (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 + - name: host1 family: debian - publish: - - "8080:80" + groups: [all] - - name: webserver - group: webservers - family: rhel - publish: - - "80:80" - - - name: database - group: databases - family: debian - publish: - - "5432:5432" +features: + docker: true + dind: false + k8s: false + istio: false + monitoring: false + chaos: false diff --git a/molecule/presets/mixed-full.yml b/molecule/presets/mixed-full.yml deleted file mode 100644 index 2a76379..0000000 --- a/molecule/presets/mixed-full.yml +++ /dev/null @@ -1,102 +0,0 @@ ---- -# ПРЕСЕТ: Mixed Full Stack (1 K8s + 2 DinD + 2 DOoD + 2 systemd) -# -# Описание: Полная смешанная конфигурация для комплексного тестирования -# - 1 Kind кластер с полным стеком -# - 2 DinD контейнера для изолированных сред -# - 2 DOoD контейнера для Docker операций -# - 2 systemd контейнера для системных ролей -# -# Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/mixed-full.yml -# -# Автор: Сергей Антропов -# Сайт: https://devops.org.ru - -docker_network: labnet - -kind_clusters: - - name: full-stack - workers: 3 - api_port: 6443 - addons: - ingress_nginx: true - metrics_server: true - istio: true - kiali: true - prometheus_stack: true - ingress_host_http_port: 8081 - ingress_host_https_port: 8443 - -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: - # Kubernetes контроллер - - name: k8s-controller - group: controllers - family: debian - publish: - - "6443:6443" - - "9090:9090" # Prometheus - - "3000:3000" # Grafana - - "16686:16686" # Jaeger - - "20001:20001" # Kiali - - # DinD контейнеры - - name: dind-dev - type: dind - group: dind - publish: - - "2375:2375" - - "8080:8080" - - - name: dind-prod - type: dind - group: dind - publish: - - "2376:2375" - - "8081:8080" - - # DOoD контейнеры - - name: dood-web - type: dood - family: debian - group: dood - publish: - - "8082:80" - env: - DOCKER_HOST: "unix:///var/run/docker.sock" - - - name: dood-api - type: dood - family: rhel - group: dood - publish: - - "8083:3000" - env: - DOCKER_HOST: "unix:///var/run/docker.sock" - - # Systemd контейнеры - - name: systemd-monitor - family: rhel - group: monitoring - publish: - - "9091:9090" - - - name: systemd-logs - family: debian - group: logging - publish: - - "5601:5601" diff --git a/molecule/presets/mixed-k8s-dind.yml b/molecule/presets/mixed-k8s-dind.yml deleted file mode 100644 index f58b840..0000000 --- a/molecule/presets/mixed-k8s-dind.yml +++ /dev/null @@ -1,69 +0,0 @@ ---- -# ПРЕСЕТ: Mixed Kubernetes + DinD (1 K8s + 3 DinD) -# -# Описание: Смешанная конфигурация Kubernetes и Docker-in-Docker -# - 1 Kind кластер для оркестрации -# - 3 DinD контейнера для изолированных Docker сред -# - Тестирование гибридных сценариев -# -# Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/mixed-k8s-dind.yml -# -# Автор: Сергей Антропов -# Сайт: https://devops.org.ru - -docker_network: labnet - -kind_clusters: - - name: hybrid - workers: 2 - api_port: 6443 - addons: - ingress_nginx: true - metrics_server: true - ingress_host_http_port: 8081 - ingress_host_https_port: 8443 - -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: - # Kubernetes контроллер - - name: k8s-controller - group: controllers - family: debian - publish: - - "6443:6443" - - # DinD контейнеры - - name: dind-dev - type: dind - group: dind - publish: - - "2375:2375" - - "8080:8080" - - - name: dind-staging - type: dind - group: dind - publish: - - "2376:2375" - - "8081:8080" - - - name: dind-prod - type: dind - group: dind - publish: - - "2377:2375" - - "8082:8080" diff --git a/molecule/presets/mixed-k8s-dood.yml b/molecule/presets/mixed-k8s-dood.yml deleted file mode 100644 index f98366b..0000000 --- a/molecule/presets/mixed-k8s-dood.yml +++ /dev/null @@ -1,75 +0,0 @@ ---- -# ПРЕСЕТ: Mixed Kubernetes + DOoD (1 K8s + 3 DOoD) -# -# Описание: Смешанная конфигурация Kubernetes и Docker-outside-of-Docker -# - 1 Kind кластер для оркестрации -# - 3 DOoD контейнера для Docker операций -# - Тестирование гибридных сценариев -# -# Использование: make lab-test SCENARIO=universal LAB_SPEC=molecule/presets/mixed-k8s-dood.yml -# -# Автор: Сергей Антропов -# Сайт: https://devops.org.ru - -docker_network: labnet - -kind_clusters: - - name: hybrid - workers: 2 - api_port: 6443 - addons: - ingress_nginx: true - metrics_server: true - ingress_host_http_port: 8081 - ingress_host_https_port: 8443 - -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: - # Kubernetes контроллер - - name: k8s-controller - group: controllers - family: debian - publish: - - "6443:6443" - - # DOoD контейнеры - - name: dood-web - type: dood - family: debian - group: dood - publish: - - "8080:80" - env: - DOCKER_HOST: "unix:///var/run/docker.sock" - - - name: dood-api - type: dood - family: rhel - group: dood - publish: - - "8081:3000" - env: - DOCKER_HOST: "unix:///var/run/docker.sock" - - - name: dood-db - type: dood - family: debian - group: dood - publish: - - "8082:5432" - env: - DOCKER_HOST: "unix:///var/run/docker.sock" diff --git a/molecule/presets/servicemesh.yml b/molecule/presets/servicemesh.yml deleted file mode 100644 index f23d806..0000000 --- a/molecule/presets/servicemesh.yml +++ /dev/null @@ -1,135 +0,0 @@ ---- -# ПРЕСЕТ: 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" diff --git a/molecule/presets/webapp.yml b/molecule/presets/webapp.yml deleted file mode 100644 index 471a720..0000000 --- a/molecule/presets/webapp.yml +++ /dev/null @@ -1,62 +0,0 @@ ---- -# ПРЕСЕТ: Веб-приложение (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"