feat: Добавлены продвинутые фичи из dialog.txt

- YAML inventory с мультигруппами в create.yml
- Vault preflight проверки в converge.yml (шифрование/расшифровка)
- Pre_tasks с include_vars для lab preset
- Chaos Engineering playbook для тестирования отказоустойчивости
- Idempotence проверки в verify.yml
- Health Dashboard с JSON отчетом
- Secrets Inspector скрипт для проверки безопасности
- Common tools установка в site.yml

Новые команды:
- make chaos - запуск Chaos Engineering тестов
- make check-secrets - проверка безопасности секретов
- make idempotence - проверка идемпотентности

Обновления в файлах:
- molecule/universal/create.yml: добавлена генерация YAML inventory
- molecule/universal/molecule.yml: обновлен для использования YAML inventory
- molecule/universal/converge.yml: добавлены vault preflight проверки
- molecule/universal/verify.yml: добавлены idempotence и health dashboard
- files/playbooks/chaos.yml: новый Chaos Engineering playbook
- files/playbooks/site.yml: добавлены common tools
- scripts/secret_scan.sh: новый Secrets Inspector
- Makefile: добавлены новые команды
- README.md: обновлена документация

Преимущества:
- Мультигруппы в YAML inventory для сложных конфигураций
- Автоматическая проверка и нормализация vault файлов
- Тестирование отказоустойчивости через Chaos Engineering
- Проверка идемпотентности для качества ролей
- Health Dashboard для мониторинга состояния лаборатории
- Secrets Inspector для безопасности
- Установка common tools для всех хостов

Автор: Сергей Антропов
Сайт: https://devops.org.ru
This commit is contained in:
2025-10-22 14:10:01 +03:00
parent 26a09cd637
commit dc255d006a
8 changed files with 305 additions and 5 deletions

View File

@@ -73,7 +73,7 @@ help: ## Показать справку по всем командам
@awk 'BEGIN {FS = ":.*?## "} /^role-[a-zA-Z_-]+:.*?## / {printf " $(CYAN)%-20s$(RESET) %s\n", $$1, $$2}' $(MAKEFILE_LIST)
@echo ""
@echo "$(GREEN)Утилиты:$(RESET)"
@awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf " $(CYAN)%-20s$(RESET) %s\n", $$1, $$2}' $(MAKEFILE_LIST) | grep -E "^(lint|env|vault|git|docker|report|snapshot|cleanup)"
@awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf " $(CYAN)%-20s$(RESET) %s\n", $$1, $$2}' $(MAKEFILE_LIST) | grep -E "^(lint|env|vault|git|docker|report|snapshot|cleanup|chaos|check-secrets|idempotence)"
# =============================================================================
# ИНИЦИАЛИЗАЦИЯ И НАСТРОЙКА
@@ -577,6 +577,24 @@ full-test: ## Полный цикл тестирования с отчетом
@echo " $(BLUE)📋 Kubeconfig файлы: reports/kubeconfigs/$(RESET)"
@echo "$(YELLOW)🌐 Открыть отчет: make open-report$(RESET)"
.PHONY: chaos
chaos: ## Запустить Chaos Engineering тесты
@echo "$(RED)🧨 Запускаем Chaos Engineering...$(RESET)"
@docker exec ansible-controller bash -lc 'ansible-playbook -i /tmp/molecule/inventory/hosts.yml /ansible/files/playbooks/chaos.yml'
@echo "$(GREEN)✅ Chaos Engineering завершен$(RESET)"
.PHONY: check-secrets
check-secrets: ## Проверить безопасность секретов
@echo "$(YELLOW)🔍 Проверяем безопасность секретов...$(RESET)"
@docker exec ansible-controller bash -lc 'bash /ansible/scripts/secret_scan.sh'
@echo "$(GREEN)✅ Проверка секретов завершена$(RESET)"
.PHONY: idempotence
idempotence: ## Проверить идемпотентность
@echo "$(BLUE)🔄 Проверяем идемпотентность...$(RESET)"
@docker exec ansible-controller bash -lc 'ansible-playbook -i /tmp/molecule/inventory/hosts.yml /ansible/files/playbooks/site.yml --check'
@echo "$(GREEN)✅ Идемпотентность проверена$(RESET)"
.PHONY: snapshot
snapshot: ## Сохранить снапшот лаборатории
@echo "$(YELLOW)📸 Создаем снапшот...$(RESET)"