feat: добавлена пометка типа операции (Build/Push) в истории сборок Dockerfile

- Добавлена колонка 'Тип' во все таблицы истории сборок
- Для push операций отображается registry вместо платформ
- Сохранение пользователя при создании push лога
- Исправлена ошибка с logger в push_docker_image endpoint
- Улучшено отображение истории сборок с визуальными индикаторами
This commit is contained in:
Сергей Антропов
2026-02-15 22:59:02 +03:00
parent 23e1a6037b
commit 1fbf9185a2
232 changed files with 38075 additions and 5 deletions

103
README.md
View File

@@ -8,12 +8,15 @@
DevOpsLab - это универсальная DevOps платформа для разработки, тестирования и развертывания инфраструктуры. Система объединяет Ansible роли, Docker контейнеры и Kubernetes кластеры в единую среду для автоматизации и управления инфраструктурой.
**Новое в версии 3.0:** Полнофункциональный веб-интерфейс для управления ролями, тестирования и деплоя через браузер. Всё работает в Docker - ничего не нужно устанавливать локально!
**Ключевые компоненты:**
- **Ansible** - автоматизация конфигурации и развертывания
- **Docker** - контейнеризация для изоляции и переносимости
- **Molecule** - тестирование Ansible ролей
- **Kubernetes (Kind)** - локальные K8s кластеры для разработки
- **Multi-arch поддержка** - сборка для amd64 и arm64 архитектур
- **Web UI** - современный веб-интерфейс для управления ролями, тестирования и деплоя
## ✨ Ключевые возможности
@@ -39,6 +42,20 @@ DevOpsLab - это универсальная DevOps платформа для
- **Port-forward** для доступа к сервисам
- **Детальный мониторинг** состояния кластера
### 🌐 Web UI
- **Современный веб-интерфейс** на FastAPI с HTMX и Bootstrap 5
- **Управление ролями** - создание, редактирование, просмотр с подсветкой синтаксиса
- **Тестирование ролей** - запуск тестов с live логами через WebSocket
- **Управление preset'ами** - создание и настройка окружений тестирования
- **Деплой на серверы** - развертывание с отображением логов в реальном времени
- **Импорт/экспорт ролей** - работа с Git репозиториями и Ansible Galaxy
- **Управление Vault** - шифрование и расшифровка секретов
- **Playbook редактор** - создание и редактирование playbook с валидацией
- **Dockerfile редактор** - управление Docker образами для тестирования
- **История выполнения** - сохранение результатов тестов и деплоев
- **Аутентификация** - безопасный вход с JWT токенами
- **Работает в Docker** - ничего не нужно устанавливать локально
## 📁 Структура проекта
```
@@ -172,6 +189,14 @@ DevOpsLab/
│ ├── setup-cicd.sh # Настройка CI/CD
│ ├── test-custom-images.sh # Тестирование образов
│ └── update-playbooks.sh # Обновление playbook'ов
├── app/ # Веб-интерфейс (FastAPI)
│ ├── api/ # API endpoints
│ ├── templates/ # HTMX шаблоны
│ ├── static/ # Статические файлы (CSS, JS)
│ ├── services/ # Бизнес-логика
│ ├── models/ # Модели базы данных
│ ├── docker-compose.yml # Docker Compose конфигурация
│ └── ...
├── docs/ # Документация
│ ├── kubernetes-kind.md # Руководство по Kubernetes
│ ├── k8s-scripts.md # Описание K8s скриптов
@@ -184,6 +209,7 @@ DevOpsLab/
│ ├── linting-guide.md # Руководство по линтингу
│ ├── platform-support.md # Поддержка платформ
│ ├── monitoring.md # Мониторинг
│ ├── web-interface-*.md # Документация веб-интерфейса
│ └── ...
├── manifests/ # Kubernetes манифесты
│ └── test-grafana-ingress.yaml
@@ -204,7 +230,26 @@ git clone <repository-url>
cd DevOpsLab
```
### 2. Тестирование ролей
### 2. Запуск веб-интерфейса (рекомендуется)
```bash
# Перейти в директорию веб-интерфейса
cd app
# Запустить через docker-compose
make up
# или
docker-compose up -d
# Открыть в браузере
# http://localhost:8000
```
**Логин по умолчанию:** `admin` / `admin` (рекомендуется сменить при первом входе)
**Подробная документация:** [docs/web-interface-quickstart.md](docs/web-interface-quickstart.md)
### 3. Тестирование ролей
```bash
# Тестирование с default preset (2 хоста)
@@ -217,7 +262,7 @@ make role test minimal
make role test my-custom-preset
```
### 3. Проверка синтаксиса
### 4. Проверка синтаксиса
```bash
# Проверка всех ролей
@@ -228,7 +273,7 @@ make role lint docker
make role lint ping
```
### 4. Работа с Kubernetes
### 5. Работа с Kubernetes
```bash
# Создание Kind кластера с аддонами
@@ -249,6 +294,45 @@ make k8s destroy kubernetes
**Подробная документация:** [docs/kubernetes-kind.md](docs/kubernetes-kind.md)
## 🌐 Веб-интерфейс
DevOpsLab включает полнофункциональный веб-интерфейс для управления всеми аспектами работы с ролями, тестированием и деплоем.
### Основные возможности
- **Управление ролями** - создание, редактирование, просмотр с подсветкой синтаксиса (CodeMirror)
- **Тестирование ролей** - запуск тестов с live логами через WebSocket
- **Управление preset'ами** - создание и настройка окружений тестирования
- **Деплой на серверы** - развертывание с отображением логов в реальном времени
- **Импорт/экспорт ролей** - работа с Git репозиториями и Ansible Galaxy
- **Управление Vault** - шифрование и расшифровка секретов через веб-интерфейс
- **Playbook редактор** - создание и редактирование playbook с валидацией YAML
- **Dockerfile редактор** - управление Docker образами для тестирования
- **История выполнения** - сохранение результатов тестов и деплоев в PostgreSQL
- **Аутентификация** - безопасный вход с JWT токенами
### Быстрый запуск
```bash
# Перейти в директорию веб-интерфейса
cd app
# Запустить через docker-compose
make up
# или
docker-compose up -d
# Открыть в браузере
# http://localhost:8000
```
**Логин по умолчанию:** `admin` / `admin` (рекомендуется сменить при первом входе)
**Подробная документация:**
- [docs/web-interface-quickstart.md](docs/web-interface-quickstart.md) - Быстрый старт
- [docs/web-interface-docker.md](docs/web-interface-docker.md) - Запуск в Docker
- [docs/WEB_INTERFACE_DETAILS.md](docs/WEB_INTERFACE_DETAILS.md) - Детали работы
## 📚 Доступные роли
### Docker
@@ -631,6 +715,8 @@ make custom-images # справка по собственным
## 📖 Документация
**Полный индекс документации:** [docs/README.md](docs/README.md)
### Основная документация
- **[docs/getting-started.md](docs/getting-started.md)** - Быстрый старт
@@ -669,6 +755,17 @@ make custom-images # справка по собственным
- **[docs/examples.md](docs/examples.md)** - Примеры использования
- **[CHANGELOG.md](CHANGELOG.md)** - История изменений
### Веб-интерфейс
- **[docs/web-interface-quickstart.md](docs/web-interface-quickstart.md)** - Быстрый старт веб-интерфейса
- **[docs/web-interface-docker.md](docs/web-interface-docker.md)** - Запуск веб-интерфейса в Docker
- **[docs/web-interface-readme.md](docs/web-interface-readme.md)** - Общая документация веб-интерфейса
- **[docs/WEB_INTERFACE_PROPOSAL.md](docs/WEB_INTERFACE_PROPOSAL.md)** - Полное предложение по веб-интерфейсу
- **[docs/WEB_INTERFACE_DETAILS.md](docs/WEB_INTERFACE_DETAILS.md)** - Детали работы веб-интерфейса
- **[docs/WEB_INTERFACE_DEPLOY_IMPORT_EXPORT.md](docs/WEB_INTERFACE_DEPLOY_IMPORT_EXPORT.md)** - Деплой, импорт и экспорт через веб-интерфейс
- **[docs/web-interface-deployment-status.md](docs/web-interface-deployment-status.md)** - Статус развертывания
- **[docs/web-interface-status.md](docs/web-interface-status.md)** - Текущий статус веб-интерфейса
### Документация по ролям
- **[roles/docker/README.md](roles/docker/README.md)** - Документация роли Docker