Обзор развертывания LinuxPatch Appliance на сервере¶
Предварительные требования и базовые условия¶
Для успешного развертывания LinuxPatch Appliance хост-сервер должен соответствовать следующим требованиям:
-
Операционная система: Дистрибутив Linux, совместимый с Docker Engine.
-
Привилегии: Для управления службами Docker и настройки системы требуются права root или привилегии
sudo. -
Настройка домена: Сервер должен быть настроен для разрешения домена
hostkey.in. -
Порты: Порты 80 и 443 должны быть открыты в межсетевом экране (firewall) хоста для обеспечения внешнего трафика для прокси Nginx и завершения SSL-соединений.
FQDN конечной панели¶
Приложение доступно по следующему формату полностью квалифицированного доменного имени (FQDN):
linuxpatch<Server ID>.hostkey.in:443
Замените <Server ID> на конкретный идентификатор, назначенный экземпляру. Приложение обслуживается через HTTPS на порту 443.
Структура файлов и каталогов¶
Развертывание использует следующую структуру каталогов на хост-системе:
-
/root/linuxpatch: Основной каталог установки, содержащий исходный код приложения, скрипты конфигурации и файлы Docker Compose. -
/root/linuxpatch/data: Каталог данных приложения, содержащий: -
data/.env: Переменные окружения и учетные данные. -
data/certs: Сертификаты SSL/TLS. -
data/logs: Файлы журналов (логов) приложения. -
/data/nginx/user_conf.d: Каталог, содержащий файлы пользовательской конфигурации Nginx. -
/etc/letsencrypt: Точка монтирования тома для SSL-сертификатов, управляемых Certbot.
Процесс установки приложения¶
Приложение развертывается с использованием Docker Compose. Установка включает клонирование репозитория и выполнение скрипта конфигурации, который генерирует необходимые переменные окружения и определения Docker Compose.
-
Клонируйте репозиторий в каталог установки:
-
Создайте необходимый том Docker для секретов Nginx:
-
Выполните скрипт конфигурации, расположенный по пути
/root/linuxpatch/configure.sh. Этот скрипт: -
Генерирует случайные учетные данные для базы данных, SMTP и административного пользователя.
-
Создает файл
data/.envс параметрами конфигурации. -
Генерирует файл
docker-compose.ymlс правильными переменными окружения. -
Автоматически запускает службы.
Версия приложения загружается динамически с использованием тега образа linuxpatch/appliance:latest.
Контейнеры Docker и их развертывание¶
Развертывание состоит из четырех основных контейнеров, оркестрируемых через Docker Compose:
-
nginx:
-
Образ:
jonasal/nginx-certbot:latest -
Функция: Обратный прокси и завершение SSL с использованием Certbot.
-
Порты: Открывает порты 80 и 443 на хосте.
-
Томы: Монтирует
nginx_secretsдля сертификатов и/data/nginx/user_conf.dдля пользовательских конфигураций. -
linuxpatch-app:
-
Образ:
linuxpatch/appliance:latest -
Функция: Основная служба приложения LinuxPatch.
-
Команда:
./web -
Зависимости: Ожидает готовности служб
linuxpatch-dbиlinuxpatch-redisперед запуском. -
Томы: Монтирует
./dataв/app/dataвнутри контейнера. -
linuxpatch-db:
-
Образ:
percona/percona-server:8.0 -
Функция: Сервер базы данных MySQL.
-
Томы: Использует
linuxpatch-mysql-dataдля постоянного хранения данных. -
Проверка состояния (Health Check): Использует
mysqladmin pingдля проверки статуса службы. -
linuxpatch-redis:
-
Образ:
redis:6 -
Функция: Служба кэширования Redis.
-
Томы: Использует
linuxpatch-redis-dataдля постоянного хранения данных. -
Проверка состояния (Health Check): Использует
redis-cli pingдля проверки статуса службы.
Базы данных¶
Приложение использует две службы баз данных, работающие внутри сети Docker:
-
MySQL (Percona Server):
-
Имя службы:
linuxpatch-db -
Хост подключения:
linuxpatch-db(внутренняя сеть Docker) -
Порт: 3306
-
Имя базы данных: Определено в
data/.envкакDB_NAME(по умолчанию:linuxpatch). -
Хранение: Данные сохраняются в томе Docker
linuxpatch-mysql-data. -
Redis:
-
Имя службы:
linuxpatch-redis -
Хост подключения:
linuxpatch-redis(внутренняя сеть Docker) -
Порт: 6379
-
Индекс базы данных: Определен в
data/.envкакREDIS_DATABASE(по умолчанию: 0). -
Хранение: Данные сохраняются в томе Docker
linuxpatch-redis-data.
Прокси-серверы¶
Развертывание включает контейнер Nginx, настроенный как обратный прокси с поддержкой SSL:
-
ПО: Nginx с Certbot (
jonasal/nginx-certbot:latest). -
SSL/TLS: Управляется автоматически через Certbot. Сертификаты хранятся в томе
nginx_secrets. -
Конфигурация: Прокси настроен на пересылку трафика в контейнер
linuxpatch-app. -
Пользовательский домен: Прокси настроен для домена
linuxpatch<Server ID>.hostkey.in. -
Email для Certbot: Настроен как
hkadm@hostkey.com.
Настройки прав доступа¶
В процессе развертывания применяются следующие настройки прав доступа:
-
/root/linuxpatch: Владелецroot:rootс правами0644. -
/root/linuxpatch/configure.sh: Исполняемый скрипт с правами0744. -
data/certsиdata/logs: Создаются с правами755. -
Томы Docker (
linuxpatch-mysql-data,linuxpatch-redis-data,nginx_secrets) управляются демоном Docker и требуют прав root для изменения.
Расположение файлов конфигурации и данных¶
Все файлы конфигурации и данные находятся в каталоге /root/linuxpatch:
-
Переменные окружения:
/root/linuxpatch/data/.env -
Определение Docker Compose:
/root/linuxpatch/docker-compose.yml -
Скрипт конфигурации:
/root/linuxpatch/configure.sh -
SSL-сертификаты: Хранятся в томе
nginx_secrets(смонтирован в/etc/letsencryptвнутри контейнера Nginx) и в каталогеdata/certs. -
Журналы приложения: Хранятся в
/root/linuxpatch/data/logs.
Доступные порты для подключения¶
На хост-сервере открыты следующие порты:
-
Порт 80: HTTP-трафик (перенаправляется на HTTPS через Nginx).
-
Порт 443: HTTPS-трафик (безопасный доступ к панели LinuxPatch).
Внутренняя коммуникация между контейнерами происходит через мостовую сеть linuxpatch-app-network и не доступна на хосте.
Запуск, остановка и обновление¶
Управление службами осуществляется с помощью команд Docker Compose, выполняемых из каталога /root/linuxpatch:
-
Запуск служб:
-
Остановка служб:
-
Обновление приложения: Для обновления приложения до последней версии загрузите новые образы и перезапустите контейнеры:
-
Просмотр журналов: