Обзор развертывания 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 выполняется комбинированным методом: через системную установку пакетов и запуск специализированного установочного скрипта.
-
Подготовка системы:
-
Обновление кэша APT и обновление всех системных пакетов до последних версий.
-
Установка необходимых зависимостей:
ca-certificates,git,python3-venv,tmux,curl,acl,lsof. -
Настройка окружения:
-
Создание пользователя
aeroс домашней директорией/opt/aero. -
Настройка прав доступа (ACL) для обеспечения работы сервиса
libvirt-qemuс данными в/opt/aero/data. -
Клонирование репозитория Open vAIR из GitHub в директорию
/opt/aero/openvair. -
Конфигурация:
-
Создание файла конфигурации проекта
project_config.tomlна основе шаблона. -
Запуск установки:
-
Запуск основного установочного скрипта
./install.shвнутри директории приложения через сессиюtmux. Процесс выполняется в фоновом режиме, а статус отслеживается по лог-файлу/opt/aero/openvair/install.log. -
Пост-установочные операции:
-
Применение патчей к Python-скриптам для корректной работы VNC через прокси и поддержки публичных хостов.
-
Перезапуск системных сервисов:
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.
Инструкция по обновлению приложения¶
Для обновления основного приложения необходимо:
-
Перейти в директорию с репозиторием:
cd /opt/aero/openvair. -
Выполнить команду обновления (в зависимости от версии):
-
Если используется Docker Compose для компонентов:
docker compose pull && docker compose up -d. -
Для обновления самого кода приложения: повторный запуск установочного скрипта
./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.