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

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

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

Для успешного развертывания системы необходимо наличие сервера с операционной системой Debian. Требуется наличие прав суперпользователя (root) для выполнения всех операций установки и конфигурации.

Система требует следующих сетевых настроек: - Включение пересылки пакетов IPv4 (net.ipv4.ip_forward). - Открытие порта 8443 для доступа к веб-интерфейсу и API. - Наличие доменного имени для настройки SSL-сертификатов через Certbot.

Структура файлов и каталогов

Конфигурация и данные приложения распределяются по следующим директориям: - /etc/apt/keyrings/ — ключи подписи репозиториев. - /etc/apt/sources.list.d/ — файлы конфигурации репозиториев. - /var/lib/incus/ — хранилище данных контейнеров и виртуальных машин. - /root/incus-preseed.yml — файл предварительной настройки (preseed) для инициализации. - /root/nginx/ — рабочая директория для развертывания прокси-сервера. - /root/nginx/compose.yml — файл конфигурации docker compose. - /data/nginx/ — директория для хранения переменных окружения и пользовательских конфигураций. - /data/nginx/user_conf.d/ — каталог с конфигурационными файлами для виртуальных хостов Nginx. - /etc/letsencrypt/ — точка монтирования для хранения SSL-сертификатов.

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

Установка выполняется через пакетный менеджер apt с использованием репозитория Zabbly. Процесс включает следующие этапы:

  1. Установка базовых утилит: ca-certificates, gnupg.
  2. Добавление ключа репозитория Zabbly в /etc/apt/keyrings/zabbly.asc.
  3. Создание файла источника репозитория в /etc/apt/sources.list.d/zabbly-incus-stable.sources.
  4. Обновление кэша пакетов.
  5. Установка пакетов:
  6. incus — основной менеджер контейнеров.
  7. qemu-system — поддержка виртуальных машин.
  8. incus-ui-canonical — веб-интерфейс управления.

После установки пакетов выполняется инициализация системы через файл incus-preseed.yml, который настраивает сеть, хранилище и профили по умолчанию.

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

Для управления системой создается группа incus-admin. Пользователь root добавляется в эту группу для получения необходимых привилегий.

Сетевая безопасность обеспечивается следующими мерами: - Веб-интерфейс и API привязываются к адресу :8443 (все сетевые интерфейсы). - Доступ к API осуществляется только через защищенный протокол HTTPS. - Для внешнего доступа используется прокси-сервер Nginx с SSL-шифрованием.

Базы данных

В предоставленной конфигурации не используется внешняя база данных. Все данные о контейнерах, виртуальных машинах и профилях хранятся в локальной файловой системе в директории /var/lib/incus/.

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

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

Контейнер запускается через docker compose из директории /root/nginx/. Конфигурация контейнера включает: - Образ: jonasal/nginx-certbot:latest. - Режим сети: host. - Монтирование тома nginx_secrets в /etc/letsencrypt для хранения сертификатов. - Монтирование директории /data/nginx/user_conf.d в /etc/nginx/user_conf.d для пользовательских конфигов. - Переменная окружения CERTBOT_EMAIL для уведомлений от Certbot.

Файл конфигурации compose.yml генерируется автоматически перед запуском.

Прокси серверы

Прокси-сервер Nginx развернут в контейнере Docker и выполняет следующие функции: - Обработка входящих HTTPS-запросов. - Автоматическое получение и обновление SSL-сертификатов через Certbot. - Пересылка трафика на локальный адрес https://127.0.0.1:8443, где работает API и веб-интерфейс Incus.

Конфигурация виртуального хоста добавляется в файл /data/nginx/user_conf.d/ с директивой proxy_pass, указывающей на внутренний адрес Incus.

Настройки прав

Права доступа к файлам и директориям устанавливаются следующим образом: - Директория /root/nginx имеет права 0755 и владельца root:root. - Файл compose.yml имеет права 0644. - Файл предварительной настройки /root/incus-preseed.yml имеет права 0600 и владельца root:root. - Директория /etc/apt/keyrings имеет права 0755.

Запуск, остановка и обновление

Управление сервисом Incus осуществляется через системный менеджер systemd: - Запуск и включение в автозагрузку: systemctl start incus.socket или systemctl start incus.service. - Проверка статуса: systemctl status incus.socket.

Управление контейнером Nginx выполняется через docker compose в директории /root/nginx/: - Запуск: docker compose up -d. - Остановка: docker compose down. - Обновление конфигурации: изменение файла compose.yml или переменных окружения, затем перезапуск контейнера.

Для проверки доступности веб-интерфейса используется команда incus info или прямой запрос к https://127.0.0.1:8443/ui.

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