Обзор развертывания Incus на сервере¶
Предварительные требования¶
Для корректной работы системы сервер должен соответствовать следующим требованиям:
-
Операционная система: Debian.
-
Права доступа: Полный доступ
rootдля выполнения системных команд и управления пакетами. -
Сеть: Должна быть включена пересылка IPv4 (IPv4 forwarding) для обеспечения работы сетевого моста.
-
Порты:
-
Внешний порт:
443(HTTPS). -
Внутренний порт приложения:
8443.
FDQN итоговой панели на домене hostkey.in¶
Для доступа к веб-интерфейсу управления используется следующий шаблон доменного имени:
| Параметр | Значение |
|---|---|
| Префикс | incus |
| Домен | hostkey.in |
| Полный шаблон | incus{Server_ID}.hostkey.in |
Процесс установки приложения¶
Установка выполняется в несколько этапов и включает настройку системных репозиториев, установку компонентов виртуализации и настройку проксирования.
-
Подготовка системы:
-
Устанавливаются базовые инструменты:
ca-certificatesиgnupg. -
Создается директория
/etc/apt/keyringsдля хранения ключей репозиториев. -
Настройка репозитория Zabbly:
-
Добавляется ключ безопасности
zabbly.asc. -
Добавляется официальный репозиторий
Zabbly Incus stable, соответствующий текущей версии Debian и архитектуре процессора. -
Установка компонентов:
-
Устанавливаются пакеты:
incus,qemu-system(для поддержки виртуальных машин) иincus-ui-canonical(веб-интерфейс). -
Инициализация Incus:
-
Создается группа пользователей
incus-admin, в которую добавляется пользовательroot. -
Выполняется автоматическая инициализация системы через конфигурационный файл (
/root/incus-preseed.yml), который настраивает: -
Сетевой мост
incusbr0с автоматическим назначением IPv4 адресов. -
Хранилище по умолчанию (storage pool) в директории
/var/lib/incus/storage-pools/default. -
Профиль по умолчанию для контейнеров и виртуальных машин.
-
Настройка сетевого интерфейса:
-
Включается пересылка трафика IPv4 (
net.ipv4.ip_forward = 1).
Контейнеры Docker и их запуск¶
Для обеспечения работы веб-интерфейса через защищенное соединение (SSL) используется контейнерный прокси-сервер.
| Параметр | Значение |
|---|---|
| Имя образа | jonasal/nginx-certbot:latest |
| Режим сети | host |
| Политика перезапуска | unless-stopped |
| Тома (volumes) | nginx_secrets:/etc/letsencrypt/data/nginx/user_conf.d:/etc/nginx/user_conf.d |
| Переменные окружения | CERTBOT_EMAIL=hkadm@hostkey.com |
Файл конфигурации Docker Compose расположен по пути /root/nginx/compose.yml.
Кастомные скрипты и дополнительные настройки¶
В процессе развертывания выполняются следующие действия:
-
Автоматическая инициализация: Использование файла
/root/incus-preseed.ymlдля неинтерактивной настройки сетевых мостов и хранилищ. -
Настройка API и UI: Веб-интерфейс и API Incus принудительно перенастраиваются на прослушивание порта
8443на всех интерфейсах (:8443) для обеспечения доступности через прокси. -
Конфигурация Nginx: В конфигурационные файлы Nginx автоматически вносятся правила
proxy_pass, направляющие трафик с доменного имени на локальный адресhttps://127.0.0.1:8443.
Инструкция по обновлению приложения¶
Для обновления основного приложения необходимо выполнить следующие действия:
-
Если используется Docker Compose для прокси-сервера:
-
Для обновления системных компонентов Incus через пакетный менеджер:
Расположение конфигурационных файлов и данных¶
| Тип данных | Путь |
|---|---|
| Конфигурация инициализации | /root/incus-preseed.yml |
| Данные Docker Compose | /root/nginx/compose.yml |
| Конфигурации Nginx (пользовательские) | /data/nginx/user_conf.d/ |
| Секреты SSL (Certbot) | nginx_secrets (внутри Docker) |
| Хранилище Incus | /var/lib/incus/storage-pools/default |
Доступные порты для подключения¶
-
443 (HTTPS): Внешний доступ к веб-интерфейсу управления через доменное имя.
-
8443 (HTTPS): Локальный порт API и Web UI приложения Incus.