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

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

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

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

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

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

  • Сеть: Должна быть включена пересылка IPv4 (IPv4 forwarding) для обеспечения работы сетевого моста.

  • Порты:

  • Внешний порт: 443 (HTTPS).

  • Внутренний порт приложения: 8443.

FDQN итоговой панели на домене hostkey.in

Для доступа к веб-интерфейсу управления используется следующий шаблон доменного имени:

Параметр Значение
Префикс incus
Домен hostkey.in
Полный шаблон incus{Server_ID}.hostkey.in

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

Установка выполняется в несколько этапов и включает настройку системных репозиториев, установку компонентов виртуализации и настройку проксирования.

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

  2. Устанавливаются базовые инструменты: ca-certificates и gnupg.

  3. Создается директория /etc/apt/keyrings для хранения ключей репозиториев.

  4. Настройка репозитория Zabbly:

  5. Добавляется ключ безопасности zabbly.asc.

  6. Добавляется официальный репозиторий Zabbly Incus stable, соответствующий текущей версии Debian и архитектуре процессора.

  7. Установка компонентов:

  8. Устанавливаются пакеты: incus, qemu-system (для поддержки виртуальных машин) и incus-ui-canonical (веб-интерфейс).

  9. Инициализация Incus:

  10. Создается группа пользователей incus-admin, в которую добавляется пользователь root.

  11. Выполняется автоматическая инициализация системы через конфигурационный файл (/root/incus-preseed.yml), который настраивает:

  12. Сетевой мост incusbr0 с автоматическим назначением IPv4 адресов.

  13. Хранилище по умолчанию (storage pool) в директории /var/lib/incus/storage-pools/default.

  14. Профиль по умолчанию для контейнеров и виртуальных машин.

  15. Настройка сетевого интерфейса:

  16. Включается пересылка трафика 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 для прокси-сервера:

    cd /root/nginx && docker compose pull && docker compose up -d
    

  • Для обновления системных компонентов Incus через пакетный менеджер:

    apt update && apt upgrade 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.

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