Инструкция по установке

Для XRM Director версии 1.0.1

circle-info

Данная инструкция описывает только развертывание XRM Director на сервере, где `Docker` и `Docker Compose` уже установлены и готовы к работе.

circle-exclamation

Что будет развернуто

В составе поставки используются два контейнера:

  • backend — серверная часть XRM Director;

  • frontend — веб-интерфейс XRM Director.

Используемые образы:

  • xrmtech/xrm-director-backend:beta_0.2.7

  • xrmtech/xrm-director-frontend:beta_0.2.7

    circle-exclamation

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

Перед началом убедитесь, что:

  • установлена РЕД ОС 8;

  • пользователь имеет права root или может выполнять команды через sudo;

  • Docker установлен;

  • Docker Compose установлен;

  • сервер имеет доступ к реестру контейнерных образов;

  • свободны порты 80/tcp и 8001/tcp;

  • настроена сетевая связность с брокерами OpenUDS;

  • подготовлены учетные данные администратора для подключения к брокерам OpenUDS.

    circle-info

    Рекомендуется заранее проверить DNS, синхронизацию времени и доступность целевых брокеров OpenUDS.

Структура каталогов

Развертывание выполняется, например, в каталоге /opt/xrmd.

Итоговая структура:


Шаг 1. Подготовка каталогов

Рекомендуется заранее создать рабочие каталоги:

circle-info

Этот шаг не является строго обязательным: при использовании `bind mount` Docker обычно может создать отсутствующие каталоги автоматически. Однако рекомендуется создать их заранее, чтобы избежать проблем с правами доступа, владельцем каталогов и записью данных приложения.

При необходимости назначьте права текущему пользователю:

Перейдите в каталог развертывания:


Шаг 2. Подготовка файла settings.py

Создайте файл /opt/xrmd/backend/settings.py со следующим содержимым:

Назначение параметров

  • ADMIN_USER — логин администратора XRM Director;

  • ADMIN_PASSWORD — пароль администратора XRM Director;

  • BROKER_CONN_TIMEOUT — таймаут подключения к брокерам OpenUDS в секундах.

    triangle-exclamation

    Пример измененной конфигурации:


Шаг 3. Подготовка файла docker-compose.yml

Создайте файл /opt/xrmd/docker-compose.yml со следующим содержимым:

Что делает данный файл

  • публикует веб-интерфейс на порту 80;

  • публикует backend API на порту 8001;

  • подключает постоянные каталоги с конфигурацией, журналами и данными;

  • создает сеть Docker xrm-network.

    circle-info

    Если порт 8001 не должен быть доступен извне, после уточнения схемы эксплуатации его можно ограничить правилами межсетевого экрана или убрать из публикации.

    ---

Шаг 4. Проверка SELinux

В РЕД ОС 8 может использоваться SELinux. Если он включен в режиме Enforcing, контейнерам может потребоваться дополнительная настройка доступа к примонтированным каталогам.

Проверьте текущий режим:

Если возвращается Enforcing, назначьте контекст для каталога backend:

circle-info

Этот шаг особенно важен, если backend не видит `settings.py` или не может записывать данные в каталоги `logs`, `plandata`, `db`.

Шаг 5. Настройка сетевого доступа

Если на сервере включен firewalld, откройте необходимые порты:

Проверка:

Шаг 6. Запуск XRM Director

Из каталога /opt/xrmd выполните команду:

После запуска будут выполнены:

  • создание сети xrm-network;

  • загрузка контейнерных образов;

  • создание контейнеров backend и frontend;

  • запуск сервисов в фоновом режиме.

Проверьте состояние контейнеров:

circle-check

Просмотр журналов

Общий просмотр:

Журналы backend:

Журналы frontend:

Просмотр в реальном времени:

Проверка опубликованных портов

Проверка веб-интерфейса

Откройте в браузере:


Шаг 8. Первый вход

Если в settings.py оставлены значения по умолчанию, используйте:

  • логин: admin

  • пароль: admin

После входа рекомендуется:

  1. проверить доступность backend;

  2. проверить сетевую связность с брокерами OpenUDS;

  3. выполнить тестовое подключение к брокеру.

    triangle-exclamation

Управление сервисом

Остановка

Остановка без удаления контейнеров

Повторный запуск

Перезапуск


Обновление

Перед обновлением рекомендуется сохранить резервную копию каталога /opt/xrmd/backend.

Типовой порядок обновления:

Если обновление требует смены тегов образов, сначала внесите изменения в docker-compose.yml.

После обновления проверьте:

  • состояние контейнеров;

  • журналы backend и frontend;

  • доступность веб-интерфейса;

  • сохранность данных в каталогах db, plandata, logs.


Резервное копирование

Для резервного копирования рекомендуется сохранять:

  • /opt/xrmd/docker-compose.yml;

  • /opt/xrmd/backend/settings.py;

  • /opt/xrmd/backend/db/;

  • /opt/xrmd/backend/plandata/;

  • при необходимости /opt/xrmd/backend/logs/.

Пример архивирования:


Типовые проблемы

Контейнеры не запускаются

Проверьте:

Частые причины:

  • ошибка в settings.py;

  • заняты порты 80 или 8001;

  • отсутствует доступ к реестру образов;

  • SELinux блокирует доступ к каталогам.

Порт 80 уже используется

Проверьте, какой процесс занимает порт:

Если порт занят, измените публикацию frontend, например:

После этого веб-интерфейс будет доступен по адресу:

Backend не может писать в каталоги

Проверьте права:

Проверьте режим SELinux:

При необходимости повторно назначьте контекст:

Нет подключения к OpenUDS-брокерам

Проверьте:

  • сетевую маршрутизацию;

  • DNS-разрешение имен;

  • корректность учетных данных;

  • значение BROKER_CONN_TIMEOUT.

При необходимости увеличьте таймаут:

После изменения конфигурации перезапустите backend:


Краткая схема установки

  1. Подготовить каталог /opt/xrmd.

  2. Создать settings.py.

  3. Создать docker-compose.yml.

  4. При необходимости настроить SELinux.

  5. Открыть порты 80/tcp и 8001/tcp.

  6. Выполнить docker compose up -d.

  7. Проверить состояние контейнеров и журналы.

  8. Выполнить первый вход и заменить пароль администратора.


Результат

После выполнения шагов XRM Director будет развернут на РЕД ОС 8 в контейнерном исполнении и готов к первичной настройке и подключению к брокерам OpenUDS.

Проверка успешного запуска

После завершения развертывания рекомендуется дополнительно проверить состояние контейнеров.

Выполните команду:

Пример вывода:

circle-check

Если один из контейнеров находится в состоянии Exited или Restarting, необходимо проверить журналы:

Last updated