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

Обзор развертывания Open vAIR на сервере

Предварительные требования

Для корректной работы приложения и процесса его установки требуются следующие условия:

  • Операционная система: Ubuntu.

  • Права доступа: Права суперпользователя (root) для установки системных пакетов и настройки сервисов.

  • Доступ в интернет: Необходим для загрузки репозитория приложения, пакетов APT и получения SSL-сертификатов.

  • Порты:

  • 443 (HTTPS) — внешний доступ к приложению.

  • 80 (HTTP) — для перенаправления на HTTPS и проверки Certbot.

  • 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 — конфигурации и файлы Docker Compose для прокси-сервера Nginx.

  • /data/nginx/user_conf.d — пользовательские конфигурационные файлы Nginx.

  • /data/nginx/nginx-certbot.env — переменные окружения для контейнера Certbot.

  • /opt/aero/restic — репозиторий для резервного копирования.

Процесс установки приложения

Развертывание Open vAIR выполняется комбинированным методом: через системную установку пакетов и запуск специализированного установочного скрипта.

  1. Подготовка системы:

  2. Обновление кэша APT и обновление всех системных пакетов до последних версий.

  3. Установка необходимых зависимостей: ca-certificates, git, python3-venv, tmux, curl, acl, lsof.

  4. Настройка окружения:

  5. Создание пользователя aero с домашней директорией /opt/aero.

  6. Настройка прав доступа (ACL) для обеспечения работы сервиса libvirt-qemu с данными в /opt/aero/data.

  7. Клонирование репозитория Open vAIR из GitHub в директорию /opt/aero/openvair.

  8. Конфигурация:

  9. Создание файла конфигурации проекта project_config.toml на основе шаблона.

  10. Запуск установки:

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

  12. Пост-установочные операции:

  13. Применение патчей к Python-скриптам для корректной работы VNC через прокси и поддержки публичных хостов.

  14. Перезапуск системных сервисов: vm-domain.service, vm-service-layer.service и web-app.service.

Права доступа и безопасность

  • Пользователь: Все основные процессы приложения работают от имени пользователя aero.

  • Sudo: Пользователю aero предоставлены права на выполнение команд sudo без ввода пароля для обеспечения автоматизации процессов.

  • Ограничения: Директория с данными резервного копирования /opt/aero/restic имеет ограниченный доступ (права 0700).

Базы данных

Приложение использует внешнюю или контейнеризированную базу данных PostgreSQL. Настройки подключения (пользователь, пароль, имя БД) определяются в конфигурационном файле project_config.toml. В качестве механизма резервного копирования базы данных и файлов используется утилита restic.

Контейнеры Docker и их запуск

Для обеспечения работы веб-интерфейса и управления SSL-сертификатами используется контейнерная среда.

Контейнер Nginx-Certbot:

  • Образ: jonasal/nginx-certbot:latest

  • Режим сети: host (использует сетевой стек хоста).

  • Тома (volumes):

  • nginx_secrets:/etc/letsencrypt — для хранения SSL-сертификатов.

  • /data/nginx/user_conf.d:/etc/nginx/user_conf.d — для конфигурационных файлов виртуальных хостов.

  • Переменные окружения: Указывается почтовый адрес для регистрации в Let's Encrypt (CERTBOT_EMAIL).

  • Политика перезапуска: unless-stopped.

Кастомные скрипты и дополнительные настройки

В процессе развертывания выполняются следующие действия:

  • Патчинг Python-кода: Скрипт на базе python3 модифицирует файлы в директории приложения для поддержки WebSocket (VNC proxy) и корректной обработки публичного DNS-имени.

  • Настройка VNC Proxy: В конфигурацию Nginx добавляется проксирование трафика для работы веб-клиента VNC через Websockify.

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

Для обновления основного приложения необходимо:

  1. Перейти в директорию с репозиторием: cd /opt/aero/openvair.

  2. Выполнить команду обновления (в зависимости от версии):

  3. Если используется Docker Compose для компонентов: docker compose pull && docker compose up -d.

  4. Для обновления самого кода приложения: повторный запуск установочного скрипта ./install.sh (система проверит наличие установленного маркера .installed).

Расположение конфигурационных файлов и данных

Тип ресурса Путь
Конфигурация проекта /opt/aero/openvair/project_config.toml
Лог установки /opt/aero/openvair/install.log
Данные приложения /opt/aero/data
Хранилище медиа /opt/aero/data/storage
Конфигурация Nginx /data/nginx/user_conf.d/opvr{Server_ID}.hostkey.in.conf

Доступные порты для подключения

  • 443 (HTTPS) — основной интерфейс управления.

  • 9090 — API Prometheus.

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