Обзор развертывания LXD на сервере¶
Предварительные требования и базовые условия¶
Перед развертыванием приложения должны быть выполнены следующие требования:
-
Операционная система: Ubuntu 22.04 (Jammy)
-
Привилегии: Доступ root или sudo
-
Домен:
hostkey.in -
Требуемые порты:
-
Порт 443 (Внешний HTTPS)
-
Порт 8443 (Внутренний LXD HTTPS)
-
Зависимости программного обеспечения:
-
snapd -
squashfs-tools -
Docker (для Nginx и Certbot)
FQDN финальной панели¶
Приложение доступно по следующему Полному доменному имени (FQDN):
-
Формат:
lxd<Server ID>.hostkey.in -
Порт: 443 (Стандартный HTTPS)
Замените <Server ID> на уникальный идентификатор, присвоенный экземпляру сервера.
Структура файлов и каталогов¶
Приложение использует следующую структуру каталогов для конфигурации, данных и сертификатов:
| Каталог/Путь | Описание |
|---|---|
/snap/bin/lxd | Расположение исполняемого файла LXD |
/root/nginx | Каталог конфигурации Nginx и Docker Compose |
/root/nginx/compose.yml | Файл определения Docker Compose |
/data/nginx/user_conf.d/ | Каталог пользовательской конфигурации Nginx |
/data/nginx/nginx-certbot.env | Переменные окружения для Nginx-Certbot |
/etc/letsencrypt | Хранилище SSL-сертификатов (подмонтированный том) |
Процесс установки приложения¶
Развертывание включает установку snap-пакета LXD и настройку обратного прокси-сервера с использованием Docker.
-
Установка зависимостей Система устанавливает
snapdиsquashfs-toolsс помощью пакетного менеджераapt. -
Установка LXD Snap LXD устанавливается из Snap Store, обращаясь к стабильному каналу:
Если LXD уже установлен, канал обновляется для обеспечения соответствия версий: -
Инициализация LXD Демон LXD инициализируется с минимальными значениями по умолчанию, если он ранее не был настроен:
-
Включение графического интерфейса LXD Графический пользовательский интерфейс (UI) для LXD включается через конфигурацию snap:
-
Развертывание прокси и SSL через Docker Обратный прокси-сервер и менеджер SSL-сертификатов развертываются с использованием Docker Compose.
-
Убедитесь, что сервис
dockerзапущен. -
Настройте файл конфигурации Nginx по адресу
/data/nginx/user_conf.d/lxd<Server ID>.hostkey.in.conf. -
Выполните настройку Docker Compose:
Права доступа и безопасность¶
Настройки безопасности управляются следующим образом:
-
Доступ пользователя: Пользователь администратора добавляется в группу
lxdдля обеспечения доступа к командам LXD без привилегий root: -
Межсетевой экран (UFW):
-
Управление межсетевым экраном является опциональным в зависимости от конфигурации.
-
Если он включен, сначала разрешается доступ SSH.
-
Порт 8443 открывается для HTTPS-трафика LXD.
-
Доступ может быть ограничен определенными блоками CIDR, если это настроено.
-
Конфигурация LXD:
-
LXD настроен на прослушивание всех сетевых интерфейсов для HTTPS на порту 8443:
Базы данных¶
В предоставленной конфигурации развертывания компоненты базы данных не используются.
Docker-контейнеры и их развертывание¶
Обработка обратного проксирования и генерация SSL-сертификатов осуществляются Docker-контейнерами, определенными в файле compose.yml, расположенном по адресу /root/nginx/compose.yml.
Детали контейнеров:
-
Образ:
jonasal/nginx-certbot:latest -
Политика перезапуска:
unless-stopped -
Режим сети:
host -
Томы:
-
nginx_secrets(внешний том), смонтированный в/etc/letsencrypt -
/data/nginx/user_conf.d, смонтированный в/etc/nginx/user_conf.d
Команда развертывания:
Стек контейнеров запускается следующей командой из каталога конфигурации:
Прокси-серверы¶
Приложение использует Nginx в качестве обратного прокси-сервера, где завершение SSL-сессий обрабатывается через Certbot.
-
Место расположения конфигурации:
/data/nginx/user_conf.d/lxd<Server ID>.hostkey.in.conf -
Происхождение трафика (Backend): Трафик перенаправляется от внешнего домена к внутреннему сервису LXD.
-
Конфигурация включает директиву:
-
SSL-сертификаты: Управляются автоматически через контейнер Nginx-Certbot с использованием издателя Let's Encrypt.
-
Электронная почта для уведомлений Certbot:
hkadm@hostkey.com(определяется в файле переменных окружения).
Настройки прав доступа¶
Права доступа к файлам и каталогам устанавливаются в процессе развертывания:
-
Каталог Nginx:
-
Путь:
/root/nginx -
Владелец:
root:root -
Режим:
0755 -
Файл Compose:
-
Путь:
/root/nginx/compose.yml -
Владелец:
root:root -
Режим:
0644 -
Доступ пользователя LXD:
-
Группа
lxdпредоставляет необходимые права для взаимодействия пользователей с демоном без привилегий root.
Расположение файлов конфигурации и данных¶
Основные файлы конфигурации и данные хранятся в следующих местах:
| Файл/Путь | Назначение |
|---|---|
/root/nginx/compose.yml | Определение сервиса Docker Compose |
/data/nginx/user_conf.d/lxd<Server ID>.hostkey.in.conf | Конфигурация серверного блока Nginx |
/data/nginx/nginx-certbot.env | Переменные окружения для контейнера прокси |
/snap/bin/lxd | Исполняемый файл LXD |
/etc/letsencrypt | Файлы SSL-сертификатов (подмонтированный том) |
Доступные порты для подключения¶
Следующие порты настроены для внешнего и внутреннего взаимодействия:
| Порт | Протокол | Описание |
|---|---|---|
| 443 | TCP | Внешний HTTPS (Nginx/SSL) |
| 8443 | TCP | Внутренний API и UI LXD (HTTPS) |
Запуск, остановка и обновление¶
Управление сервисом LXD:
-
Перезапуск демона LXD:
-
Проверка версии LXD:
Управление прокси-сервером Docker:
-
Запуск/Перезапуск контейнеров:
-
Остановка контейнеров:
Обновление LXD:
Для обновления LXD до конкретного канала: