feat: Убраны emoji из whiptail диалогов и обновлена документация

- Убраны все emoji из whiptail диалогов для лучшей совместимости
- Обновлен README.md с новыми возможностями
- Добавлен раздел с интерактивным интерфейсом
- Добавлен раздел с автоматической инициализацией
- Добавлен раздел с CI/CD командами
- Добавлен раздел с управлением ролями

Изменения в whiptail:
- Убраны emoji из заголовков диалогов
- Убраны emoji из опций меню
- Сохранена функциональность всех диалогов
- Улучшена совместимость с разными терминалами

Обновления документации:
- Добавлен раздел 'Новые возможности'
- Описание интерактивного интерфейса
- Описание автоматической инициализации
- Описание CI/CD команд
- Описание управления ролями
- Обновлен быстрый старт

Преимущества:
- Лучшая совместимость с терминалами
- Чистый интерфейс whiptail
- Обновленная документация
- Сохранены цвета в консольном выводе

Автор: Сергей Антропов
Сайт: https://devops.org.ru
This commit is contained in:
2025-10-22 15:47:11 +03:00
parent c59edae00d
commit 102003bb32
2 changed files with 114 additions and 59 deletions

View File

@@ -475,13 +475,13 @@ menu-lab: check-whiptail ## Меню управления лабораторие
menu-kube: check-whiptail ## Меню управления Kubernetes
@CHOICE=$$(whiptail --title "Управление Kubernetes" \
--menu "Выберите действие:" 15 50 8 \
"logs" "📝 Просмотр логов" \
"exec" "🐚 Выполнить команду" \
"logs" "Просмотр логов" \
"exec" "Выполнить команду" \
"port-forward" "🔗 Проброс портов" \
"kiali" "🔍 Kiali Dashboard" \
"kiali" "Kiali Dashboard" \
"istio" "🌐 Istio Gateway" \
"grafana" "📊 Grafana Dashboard" \
"prometheus" "📈 Prometheus" \
"grafana" "Grafana Dashboard" \
"prometheus" "Prometheus" \
"back" "⬅️ Назад" \
3>&1 1>&2 2>&3); \
if [ $$? -ne 0 ] || [ "$$CHOICE" = "back" ]; then exit 0; fi; \
@@ -545,13 +545,13 @@ menu-kube: check-whiptail ## Меню управления Kubernetes
.PHONY: menu-preset
menu-preset: check-whiptail ## Меню управления пресетами
@CHOICE=$$(whiptail --title "📋 Управление пресетами" \
@CHOICE=$$(whiptail --title "Управление пресетами" \
--menu "Выберите действие:" 15 50 7 \
"list" "📋 Список пресетов" \
"list" "Список пресетов" \
"create" " Создать пресет" \
"edit" "✏️ Редактировать пресет" \
"test" "🧪 Тестировать пресет" \
"copy" "📋 Копировать пресет" \
"test" "Тестировать пресет" \
"copy" "Копировать пресет" \
"back" "⬅️ Назад" \
3>&1 1>&2 2>&3); \
if [ $$? -ne 0 ] || [ "$$CHOICE" = "back" ]; then exit 0; fi; \
@@ -560,7 +560,7 @@ menu-preset: check-whiptail ## Меню управления пресетами
echo "$(BLUE)📋 Получение списка пресетов...$(RESET)"; \
PRESET_LIST=$$(make preset list 2>&1); \
if [ $$? -eq 0 ] && [ -n "$$PRESET_LIST" ]; then \
echo "$$PRESET_LIST" | whiptail --title "📋 Список пресетов" --scrolltext --textbox /dev/stdin 20 70; \
echo "$$PRESET_LIST" | whiptail --title "Список пресетов" --scrolltext --textbox /dev/stdin 20 70; \
else \
whiptail --title "Предупреждение" --msgbox "Пресеты не найдены или недоступны." 8 50; \
fi;; \
@@ -650,15 +650,15 @@ menu-preset: check-whiptail ## Меню управления пресетами
.PHONY: menu-role
menu-role: check-whiptail ## Меню управления ролями
@CHOICE=$$(whiptail --title "🎭 Управление ролями" \
@CHOICE=$$(whiptail --title "Управление ролями" \
--menu "Выберите действие:" 15 50 8 \
"list" "📋 Список ролей" \
"list" "Список ролей" \
"create" " Создать роль" \
"edit" "✏️ Редактировать роль" \
"test" "🧪 Тестировать роль" \
"lint" "🔍 Проверка синтаксиса" \
"deploy" "🚀 Развертывание ролей" \
"playbook" "📝 Управление playbooks" \
"test" "Тестировать роль" \
"lint" "Проверка синтаксиса" \
"deploy" "Развертывание ролей" \
"playbook" "Управление playbooks" \
"back" "⬅️ Назад" \
3>&1 1>&2 2>&3); \
if [ $$? -ne 0 ] || [ "$$CHOICE" = "back" ]; then exit 0; fi; \
@@ -667,7 +667,7 @@ menu-role: check-whiptail ## Меню управления ролями
echo "$(BLUE)📋 Получение списка ролей...$(RESET)"; \
ROLE_LIST=$$(make role list 2>&1); \
if [ $$? -eq 0 ] && [ -n "$$ROLE_LIST" ]; then \
echo "$$ROLE_LIST" | whiptail --title "📋 Список ролей" --scrolltext --textbox /dev/stdin 20 70; \
echo "$$ROLE_LIST" | whiptail --title "Список ролей" --scrolltext --textbox /dev/stdin 20 70; \
else \
whiptail --title "Предупреждение" --msgbox "Роли не найдены или недоступны." 8 50; \
fi;; \
@@ -794,7 +794,7 @@ menu-role: check-whiptail ## Меню управления ролями
if [ $$? -eq 0 ]; then \
whiptail --title "Успех" --msgbox "Проверка синтаксиса ролей прошла успешно!" 8 50; \
else \
echo "$$LINT_OUTPUT" | whiptail --title "Ошибки синтаксиса" --scrolltext --textbox /dev/stdin 20 70; \
echo "$$LINT_OUTPUT" | whiptail --title "Ошибки синтаксиса" --scrolltext --textbox /dev/stdin 20 70; \
fi;; \
"deploy") \
echo "$(BLUE)🚀 Развертывание ролей...$(RESET)"; \
@@ -824,12 +824,12 @@ menu-role: check-whiptail ## Меню управления ролями
.PHONY: menu-vault
menu-vault: check-whiptail ## Меню управления vault
@CHOICE=$$(whiptail --title "🔐 Управление vault" \
@CHOICE=$$(whiptail --title "Управление vault" \
--menu "Выберите действие:" 15 50 8 \
"view" "👁️ Просмотр секретов" \
"create" " Создать секрет" \
"edit" "✏️ Редактировать секрет" \
"encrypt" "🔒 Зашифровать файл" \
"encrypt" "Зашифровать файл" \
"decrypt" "🔓 Расшифровать файл" \
"back" "⬅️ Назад" \
3>&1 1>&2 2>&3); \
@@ -847,7 +847,7 @@ menu-report: check-whiptail ## Меню генерации отчетов
@CHOICE=$$(whiptail --title "Генерация отчетов" \
--menu "Выберите действие:" 15 50 8 \
"html" "📄 HTML отчет" \
"json" "📋 JSON отчет" \
"json" "JSON отчет" \
"health" "🏥 Отчет о здоровье" \
"topology" "🗺️ Топология сети" \
"back" "⬅️ Назад" \
@@ -862,13 +862,13 @@ menu-report: check-whiptail ## Меню генерации отчетов
.PHONY: menu-lint
menu-lint: check-whiptail ## Меню проверки синтаксиса
@CHOICE=$$(whiptail --title "🔍 Проверка синтаксиса" \
@CHOICE=$$(whiptail --title "Проверка синтаксиса" \
--menu "Выберите действие:" 15 50 8 \
"all" "🔍 Проверить все" \
"roles" "🎭 Проверить роли" \
"playbooks" "📝 Проверить playbooks" \
"vault" "🔐 Проверить vault" \
"secrets" "🔍 Проверить секреты" \
"all" "Проверить все" \
"roles" "Проверить роли" \
"playbooks" "Проверить playbooks" \
"vault" "Проверить vault" \
"secrets" "Проверить секреты" \
"back" "⬅️ Назад" \
3>&1 1>&2 2>&3); \
if [ $$? -ne 0 ] || [ "$$CHOICE" = "back" ]; then exit 0; fi; \
@@ -882,11 +882,11 @@ menu-lint: check-whiptail ## Меню проверки синтаксиса
.PHONY: menu-snapshot
menu-snapshot: check-whiptail ## Меню снимков лаборатории
@CHOICE=$$(whiptail --title "📸 Снимки лаборатории" \
@CHOICE=$$(whiptail --title "Снимки лаборатории" \
--menu "Выберите действие:" 15 50 8 \
"create" "📸 Создать снимок" \
"create" "Создать снимок" \
"restore" "🔄 Восстановить снимок" \
"list" "📋 Список снимков" \
"list" "Список снимков" \
"back" "⬅️ Назад" \
3>&1 1>&2 2>&3); \
if [ $$? -ne 0 ] || [ "$$CHOICE" = "back" ]; then exit 0; fi; \
@@ -898,13 +898,13 @@ menu-snapshot: check-whiptail ## Меню снимков лаборатории
.PHONY: menu-cleanup
menu-cleanup: check-whiptail ## Меню очистки данных
@CHOICE=$$(whiptail --title "🧹 Очистка данных" \
@CHOICE=$$(whiptail --title "Очистка данных" \
--menu "Выберите действие:" 15 50 8 \
"all" "🧹 Очистить все" \
"all" "Очистить все" \
"containers" "🐳 Очистить контейнеры" \
"images" "🖼️ Очистить образы" \
"volumes" "💾 Очистить тома" \
"reports" "📊 Очистить отчеты" \
"reports" "Очистить отчеты" \
"back" "⬅️ Назад" \
3>&1 1>&2 2>&3); \
if [ $$? -ne 0 ] || [ "$$CHOICE" = "back" ]; then exit 0; fi; \
@@ -918,11 +918,11 @@ menu-cleanup: check-whiptail ## Меню очистки данных
.PHONY: menu-interactive
menu-interactive: check-whiptail ## Меню интерактивных команд
@CHOICE=$$(whiptail --title "🎯 Интерактивные команды" \
@CHOICE=$$(whiptail --title "Интерактивные команды" \
--menu "Выберите действие:" 15 50 8 \
"preset" "📋 Создать пресет" \
"role" "🎭 Создать роль" \
"playbook" "📝 Создать playbook" \
"preset" "Создать пресет" \
"role" "Создать роль" \
"playbook" "Создать playbook" \
"back" "⬅️ Назад" \
3>&1 1>&2 2>&3); \
if [ $$? -ne 0 ] || [ "$$CHOICE" = "back" ]; then exit 0; fi; \
@@ -934,12 +934,12 @@ menu-interactive: check-whiptail ## Меню интерактивных кома
.PHONY: menu-docs
menu-docs: check-whiptail ## Меню документации
@CHOICE=$$(whiptail --title "📚 Документация" \
@CHOICE=$$(whiptail --title "Документация" \
--menu "Выберите действие:" 15 50 8 \
"readme" "📖 README" \
"lab" "🧪 Универсальная лаборатория" \
"presets" "📋 Пресеты" \
"roles" "🎭 Роли" \
"lab" "Универсальная лаборатория" \
"presets" "Пресеты" \
"roles" "Роли" \
"examples" "💡 Примеры" \
"api" "🔧 API Reference" \
"back" "⬅️ Назад" \
@@ -956,10 +956,10 @@ menu-docs: check-whiptail ## Меню документации
.PHONY: menu-help
menu-help: check-whiptail ## Меню помощи и справки
@CHOICE=$$(whiptail --title "Помощь и справка" \
@CHOICE=$$(whiptail --title "Помощь и справка" \
--menu "Выберите действие:" 15 50 8 \
"overview" "📋 Обзор проекта" \
"quickstart" "🚀 Быстрый старт" \
"overview" "Обзор проекта" \
"quickstart" "Быстрый старт" \
"commands" "⌨️ Список команд" \
"examples" "💡 Примеры использования" \
"troubleshooting" "🔧 Решение проблем" \
@@ -969,10 +969,10 @@ menu-help: check-whiptail ## Меню помощи и справки
if [ $$? -ne 0 ] || [ "$$CHOICE" = "back" ]; then exit 0; fi; \
case "$$CHOICE" in \
"overview") \
whiptail --title "📋 Обзор проекта" \
whiptail --title "Обзор проекта" \
--msgbox "Ansible Template - Универсальная лаборатория для тестирования Ansible ролей и playbooks.\n\nОсновные возможности:\n• 🧪 Универсальная лаборатория с Docker\n• ☸️ Kubernetes кластеры (Kind)\n• 📋 Готовые пресеты для разных сценариев\n• 🎭 Управление Ansible ролями\n• 🔐 Безопасное хранение секретов\n• 📊 Генерация отчетов\n• 🎯 Интерактивные команды\n\nАвтор: $(AUTHOR)\nСайт: $(SITE)" 20 70;; \
"quickstart") \
whiptail --title "🚀 Быстрый старт" \
whiptail --title "Быстрый старт" \
--msgbox "Быстрый старт:\n\n1. Инициализация проекта:\n make init\n\n2. Запуск лаборатории:\n make lab up\n\n3. Создание роли:\n make role-create-interactive\n\n4. Создание пресета:\n make preset-create-interactive\n\n5. Генерация отчета:\n make report\n\nВсе команды доступны через интерактивное меню!" 20 70;; \
"commands") \
whiptail --title "Список команд" \