feat: Добавлены интерактивные команды для управления ролями

- Добавлен скрипт scripts/role-manager.sh для управления ролями
- Добавлены команды make role list, create, delete
- Автоматическое создание структуры ролей (tasks, handlers, defaults, meta, README)
- Автоматическое обновление roles/deploy.yml при создании/удалении ролей
- Интерактивный интерфейс с подтверждением удаления
- Цветной вывод с эмодзи для лучшего UX

Команды:
- make role list    - показать все роли
- make role create  - создать новую роль (интерактивно)
- make role delete  - удалить роль (интерактивно)

Скрипт создает полную структуру роли:
- tasks/main.yml - основные задачи
- defaults/main.yml - переменные по умолчанию
- handlers/main.yml - обработчики
- meta/main.yml - метаданные для Ansible Galaxy
- README.md - документация роли
This commit is contained in:
Сергей Антропов
2025-10-25 19:19:06 +03:00
parent 9ce30e0d67
commit e98bfa9c1f
2 changed files with 277 additions and 2 deletions

View File

@@ -40,7 +40,7 @@ DOCKER_BUILDX_BUILDER ?= multiarch-builder
# Базовые образы и их теги
BASE_IMAGES := altlinux/p9 astralinux/astra-1.7 redos/redos:9 registry.access.redhat.com/ubi8/ubi quay.io/centos/centos:stream9 almalinux:8 rockylinux:8
.PHONY: role vault git docker presets controller help update-playbooks generate-docs setup-cicd
.PHONY: role vault git docker presets controller help update-playbooks generate-docs setup-cicd list create delete
# =============================================================================
# КОМАНДЫ ДЛЯ РАБОТЫ С РОЛЯМИ
@@ -109,6 +109,12 @@ role:
else \
echo "❌ Развертывание отменено"; \
fi;; \
list) \
./scripts/role-manager.sh list;; \
create) \
./scripts/role-manager.sh create;; \
delete) \
./scripts/role-manager.sh delete;; \
*) \
echo "🎯 Доступные команды:"; \
echo ""; \
@@ -123,7 +129,20 @@ role:
echo " 💡 Требует: inventory/hosts.ini"; \
echo ""; \
echo " 🔍 make role lint - проверить синтаксис ролей"; \
echo " 💡 Использует: ansible-lint";; \
echo " 💡 Использует: ansible-lint"; \
echo ""; \
echo " 📋 make role list - показать все роли"; \
echo " 💡 Показывает: список всех ролей в roles/"; \
echo ""; \
echo " make role create - создать новую роль"; \
echo " 💡 Интерактивно: запрашивает имя роли"; \
echo " 💡 Создает: структуру папок и файлов"; \
echo " 💡 Обновляет: roles/deploy.yml"; \
echo ""; \
echo " 🗑️ make role delete - удалить роль"; \
echo " 💡 Интерактивно: запрашивает имя роли"; \
echo " 💡 Удаляет: папку роли и файлы"; \
echo " 💡 Обновляет: roles/deploy.yml";; \
esac
# =============================================================================
@@ -914,6 +933,9 @@ help:
@echo " make role lint - проверить синтаксис ролей"
@echo " make role test [preset] - протестировать роли с preset'ом"
@echo " make role deploy - развернуть роли на реальные серверы"
@echo " make role list - показать все роли"
@echo " make role create - создать новую роль (интерактивно)"
@echo " make role delete - удалить роль (интерактивно)"
@echo ""
@echo "📋 PRESET'Ы (тестовые окружения):"
@echo " make presets list - показать все доступные preset'ы"