feat: Полностью переписан Makefile с максимальной автоматизацией

- Создан новый Makefile с унифицированными командами
- Команды теперь работают как: make lab up, make kube sh, make preset list
- Добавлена поддержка .env файла для конфигурации
- Созданы команды для автоматизации всех аспектов работы:

Основные команды:
- make help - справка по всем командам
- make init - полная инициализация проекта
- make setup-env - создание .env файла
- make setup-vault - создание vault-password.txt
- make setup-roles - создание директории ролей
- make setup-precommit - установка pre-commit хуков

Лаборатория (make lab):
- make lab up/down/sh/test/create/converge/verify/destroy/reset
- Полная автоматизация работы с лабораторией
- Цветной вывод и информативные сообщения

Kubernetes (make kube):
- make kube sh/cmd/enter/kiali/istio/grafana/prom/pf-stop
- Управление Kubernetes кластерами
- Port-forward для всех сервисов мониторинга

Пресеты (make preset):
- make preset list/create/edit/test/copy
- Автоматическое создание новых пресетов
- Копирование существующих пресетов
- Тестирование пресетов

Роли (make role):
- make role list/create/edit/test/lint/deploy
- Автоматическое создание структуры ролей
- Тестирование и линтинг ролей

Vault (make vault):
- make vault show/create/edit/delete/rekey/decrypt/encrypt
- Полное управление Ansible Vault

Git (make git):
- make git status/add/commit/push/pull/branch/merge
- Автоматизация работы с Git

Docker (make docker):
- make docker build/rebuild/prune/shell/logs/stop/start
- Управление Docker контейнерами

Утилиты:
- make report - генерация HTML отчетов
- make snapshot/restore - управление снапшотами
- make cleanup - очистка лаборатории
- make env - показ переменных окружения
- make clean - полная очистка проекта

Особенности:
- Цветной вывод для лучшего UX
- Информативные сообщения о выполняемых действиях
- Автоматическая загрузка переменных из .env файла
- Валидация параметров команд
- Подробная справка по всем командам
- Единообразный интерфейс для всех операций

Создан env.example с примером конфигурации
Обновлен README.md с новыми командами
Добавлена поддержка всех 21 пресета
Интеграция с существующей документацией

Автор: Сергей Антропов
Сайт: https://devops.org.ru
This commit is contained in:
2025-10-22 13:37:48 +03:00
parent 8071fba25f
commit f2a0f46813
3 changed files with 682 additions and 263 deletions

View File

@@ -50,14 +50,71 @@ make pre-commit-install
### Первый запуск
```bash
# Инициализация проекта
make init
# Поднять контроллер
make lab-up
make lab up
# Запустить минимальную лабораторию
make lab-test LAB_SPEC=molecule/presets/minimal.yml
make lab test
# Посмотреть отчет
make lab-report
make report
```
### Основные команды
```bash
# Показать справку
make help
# Управление лабораторией
make lab up # Поднять контроллер
make lab down # Остановить контроллер
make lab test # Полный цикл тестирования
make lab create # Создать инфраструктуру
make lab converge # Запустить роли
make lab verify # Проверить работу
make lab destroy # Уничтожить инфраструктуру
make lab reset # Полный сброс
# Управление Kubernetes
make kube sh # Войти в контейнер
make kube cmd CLUSTER=lab CMD="get pods -A"
make kube kiali CLUSTER=lab
make kube istio CLUSTER=lab
make kube grafana CLUSTER=lab
make kube prom CLUSTER=lab
# Управление пресетами
make preset list # Список пресетов
make preset create NAME=my-preset
make preset test NAME=my-preset
make preset edit NAME=my-preset
# Управление ролями
make role list # Список ролей
make role create NAME=my-role
make role test NAME=my-role
make role lint # Проверка ролей
# Управление Vault
make vault show # Показать содержимое
make vault create # Создать vault файл
make vault edit # Редактировать vault файл
# Управление Git
make git status # Статус репозитория
make git add # Добавить файлы
make git commit MESSAGE="your message"
make git push # Отправить изменения
# Отчеты и мониторинг
make report # HTML отчет
make snapshot # Создать снапшот
make restore # Восстановить снапшот
make cleanup # Очистить лабораторию
```
## 📚 Документация
@@ -239,9 +296,9 @@ images:
# Настройки по умолчанию для systemd контейнеров
systemd_defaults:
privileged: true
privileged: true
command: "/sbin/init"
volumes:
volumes:
- "/sys/fs/cgroup:/sys/fs/cgroup:ro"
tmpfs:
- "/run"