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