Перейти к содержанию

Обзор развертывания 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 выполняется в несколько этапов:

  1. Подготовка системы: Обновление пакетов apt, установка базовых зависимостей (git, python3-venv, curl, tmux и др.) и создание системного пользователя aero.

  2. Настройка прав доступа: Создание необходимых директорий в /opt/aero и настройка ACL для обеспечения доступа пользователю libvirt-qemu к данным.

  3. Клонирование репозитория: Загрузка исходного кода Open vAIR из GitHub в каталог /opt/aero/openvair.

  4. Конфигурация: Создание файла project_config.toml на основе шаблона с параметрами базы данных, RabbitMQ и путей хранения.

  5. Автоматизированная установка: Запуск основного установочного скрипта ./install.sh внутри сессии tmux. Процесс выполняется в фоновом режиме, а статус установки отслеживается через лог-файл /opt/aero/openvair/install.log.

  6. Патчинг системы: Выполнение 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 сервера.

Инструкция по обновлению приложения

Для обновления основного приложения необходимо выполнить следующие действия:

  1. Перейти в директорию проекта /opt/aero/openvair.

  2. Выполнить команду git pull для получения актуальной версии кода.

  3. Запустить установочный скрипт ./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.

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×