Обзор развертывания Open vAIR на сервере¶
Предварительные требования¶
Для корректной работы приложения требуются следующие параметры и настройки системы:
-
Операционная система: Ubuntu.
-
Права доступа: Требуется доступ с правами
sudoдля пользователяaero. -
Доменное имя: Настройка осуществляется через поддомены в зоне
hostkey.in. -
Порты:
-
443(внешний HTTPS) — основной порт доступа. -
8000(внутренний HTTP) — для веб-интерфейса приложения. -
9090— для Prometheus API.
FDQN итоговой панели на домене hostkey.in¶
Для доступа к приложению используется динамический шаблон поддомена:
| Параметр | Значение |
|---|---|
| Префикс | opvr |
| Домен | hostkey.in |
| Полный шаблон | opvr{Server_ID_from_Invapi}.hostkey.in |
Структура файлов и каталогов¶
Основные директории, используемые в системе:
-
/opt/aero— домашний каталог пользователяaeroи рабочая директория приложения. -
/opt/aero/openvair— исходный код и файлы проекта Open vAIR. -
/opt/nginx— конфигурации прокси-сервера Nginx. -
/data/nginx/user_conf.d— пользовательские конфигурационные файлы Nginx. -
/data/nginx/nginx-certbot.env— файл переменных окружения для Docker-контейнера Nginx. -
/opt/aero/restic— репозиторий для резервного копирования данных.
Процесс установки приложения¶
Развертывание Open vAIR выполняется в несколько этапов:
-
Подготовка системы: Обновление пакетов
apt, установка базовых зависимостей (git,python3-venv,curl,tmuxи др.) и создание системного пользователяaero. -
Настройка прав доступа: Создание необходимых директорий в
/opt/aeroи настройка ACL для обеспечения доступа пользователюlibvirt-qemuк данным. -
Клонирование репозитория: Загрузка исходного кода Open vAIR из GitHub в каталог
/opt/aero/openvair. -
Конфигурация: Создание файла
project_config.tomlна основе шаблона с параметрами базы данных, RabbitMQ и путей хранения. -
Автоматизированная установка: Запуск основного установочного скрипта
./install.shвнутри сессииtmux. Процесс выполняется в фоновом режиме, а статус установки отслеживается через лог-файл/opt/aero/openvair/install.log. -
Патчинг системы: Выполнение Python-скриптов для модификации конфигурационных файлов приложения (настройка проксирования VNC и корректного определения публичного хоста).
Права доступа и безопасность¶
-
Пользователь: Для работы приложения используется выделенный пользователь
aero. -
Безопасность: Пользователю
aeroпредоставлены права на выполнение команд черезsudoбез ввода пароля. -
Ограничения: Директория с данными
/opt/aero/resticимеет ограниченный доступ (права0700).
Базы данных¶
Приложение использует внешнюю или контейнеризированную базу данных PostgreSQL:
-
Пользователь БД:
aero. -
Имя базы данных:
openvair. -
Хост:
0.0.0.0(доступ изнутри сети).
Также для обмена сообщениями используется RabbitMQ.
Контейнеры Docker и их запуск¶
Для обеспечения работы HTTPS и обратного проксирования используется контейнерный стек:
Nginx Certbot Container
-
Имя образа:
jonasal/nginx-certbot:latest -
Режим сети:
host -
Тома (volumes):
-
nginx_secrets:/etc/letsencrypt— для хранения SSL-сертификатов. -
/data/nginx/user_conf.d:/etc/nginx/user_conf.d— для пользовательских конфигураций хостов. -
Переменные окружения: Указывается почта администратора
CERTBOT_EMAIL. -
Политика перезапуска:
unless-stopped.
Кастомные скрипты и дополнительные настройки¶
В процессе развертывания выполняются следующие действия:
-
Скрипт установки:
./install.sh— основной процесс инсталляции приложения. -
Python-патчинг (VNC): Модифицирует файл
libs/network/utils.pyдля поддержки WebSocket-проксирования через Nginx. -
Python-патчинг (Config): Изменяет
modules/virtual_machines/config.py, чтобы приложение корректно определяло публичный URL сервера.
Инструкция по обновлению приложения¶
Для обновления основного приложения необходимо выполнить следующие действия:
-
Перейти в директорию проекта
/opt/aero/openvair. -
Выполнить команду
git pullдля получения актуальной версии кода. -
Запустить установочный скрипт
./install.sh(рекомендуется запускать черезtmux, чтобы избежать прерывания процесса).
Расположение конфигурационных файлов и данных¶
-
Конфигурация приложения:
/opt/aero/openvair/project_config.toml. -
Данные приложения:
/opt/aero/data. -
Хранилище медиафайлов:
/opt/aero/data/storage. -
Лог установки:
/opt/aero/openvair/install.log.
Доступные порты для подключения¶
| Порт | Назначение | Протокол |
|---|---|---|
443 | Основной интерфейс (Web UI / API) | HTTPS |
80 | Перенаправление на HTTPS | HTTP |
9090 | Prometheus API | HTTP |
Запуск, остановка приложения¶
Управление системными сервисами приложения осуществляется через systemd:
-
Запуск веб-интерфейса:
sudo systemctl start web-app.service -
Перезапуск компонентов виртуализации:
-
sudo systemctl restart vm-domain.service -
sudo systemctl restart vm-service-layer.service -
sudo systemctl restart web-app.service
Прокси серверы (Nginx, SSL)¶
Для обеспечения защищенного соединения используется Nginx в Docker-контейнере с интеграцией Certbot.
-
SSL: Сертификаты управляются автоматически через Let's Encrypt.
-
Проксирование VNC: Настроен WebSocket-прокси для работы VNC через веб-интерфейс по пути
/vnc-proxy/. -
API: Проксируется доступ к Prometheus API и документации Open vAIR.