- Created by Eugenia Kalnina, last updated on May 05, 2023 4 minute read
You are viewing an old version of this page. View the current version.
Compare with Current View Page History
« Previous Version 12 Next »
Структура ПО РТЛС
По умолчанию все модули имеют между собой связь средствами docker с возможностью установки каждого модуля на отдельной машине
Подготовка к развертыванию системы РТЛС
Минимальные требования (по умолчанию требования указаны для конфигурации UWB + LE + SRV и развертывании в пределах одной машины и могут меняться в зависимости от используемых модулей, конфигурации инфраструктуры, кол-ва меток, частоты обновления данных от меток, сроков хранения данных и т.д. ):
OS | Ubuntu Server 20.04, Ubuntu Server 22.04, Debian 11 |
CPU | 4 cores CPU, 2GHz |
RAM | 4 Gb |
FS | 50 Gb |
Порты | 443/tcp, 5683/udp |
* с поддержкой LoRaWAN | 8420/tcp |
* c поддержкой BLE позиционирования | 8520/tcp |
Подготовка ОС к установке ПО РТЛС
Все команды по конфигурации ОС и установке пакетов производятся под пользователем с административными правами (здесь и далее пользователь appuser). Все команды здесь и далее приведены для Ubuntu Server 20.04. Инструкции по установке на другие версии OS: docker и docker-compose
Удалить старые версии пакетов Docker Engine (если были установлены ранее) . Docker, запущенный через snap, должен быть удален!
sudo apt-get remove docker docker-engine docker.io containerd runc sudo snap remove docker
Добавить репозиторий
sudo apt-get update sudo apt-get install \ ca-certificates \ curl \ gnupg \ lsb-release sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/nullУстановить последние версии пакетов Docker Engine
sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
Проверить , что пакеты установились успешно
docker version docker compose version
Пользователя, под которым будет производится управление ПО РТЛС, добавить в группу docker
sudo usermod -aG docker appuser
Повторно авторизоваться под пользователем appuser для применения прав доступа
Чистая установка ПО РТЛС
Все команды производятся под пользователем appuser
Получить от РТЛС Логин и Пароль для доступа к репозиторию.
Авторизоваться в docker с полученными параметрами подключения
docker login repo.rtlsnet.ru:5000 Username: *** Password: **** Login Succeeded
На странице доступных релизов найти архив с конфигурацией нужной версии RTLS releases
Скачать и распаковать архив в папку rtls (где <version> версия ПО, которую требуется установить, например v5.0) , <repo-user> имя пользователя для доступа к ресурсам репозитория РТЛС. В процессе выполнения команды curl потребуется ввести пароль для пользователя <repo-user>
mkdir rtls cd rtls export RTLS_VERSION=<version> curl -u <repo-user> -v -L https://repo.rtlsnet.ru/repository/rtls-public/srv/release/$RTLS_VERSION/RTLS-compose-$RTLS_VERSION.tar.gz -o rtls.tar.gz tar -zxvf rtls.tar.gz rm rtls.tar.gz
Запустить ПО в зависимости от необходимой конфигурации
запуск с поддержкой UWB
docker compose up -d
запуск с поддержкой получения данных по LoRa
docker compose --profile actobus up -d
Запуск с поддержкой BLE (включая получение данных по LoRa)
docker compose --profile ble up -d
После полного старта контейнера SRV статус должен перейти в healthy
docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c58f0cc80b8e repo.rtlsnet.ru:5000/emqx:4.4.2 "/usr/bin/docker-ent…" 43 hours ago Up 5 minutes (healthy) 1883/tcp, 4369-4370/tcp, 5369/tcp, 6369-6370/tcp, 8081/tcp, 8083-8084/tcp, 8883/tcp, 11883/tcp, 0.0.0.0:18083->18083/tcp, :::18083->18083/tcp rtls-emqx-1 af20240c2d95 repo.rtlsnet.ru:5000/srv:v5.0 "/entrypoint.sh -c s…" 44 hours ago Up 5 minutes (healthy) 0.0.0.0:9993->9993/tcp, :::9993->9993/tcp, 0.0.0.0:80->8080/tcp, :::80->8080/tcp, 0.0.0.0:8300->8081/tcp, :::8300->8081/tcp, 0.0.0.0:443->8443/tcp, :::443->8443/tcp rtls-srv-1 f16b0ad37ef3 repo.rtlsnet.ru:5000/le:v5.0 "/entrypoint.sh '-f …" 44 hours ago Up 5 minutes 0.0.0.0:5683->5683/udp, :::5683->5683/udp, 0.0.0.0:17320-17321->17320-17321/udp, :::17320-17321->17320-17321/udp, 0.0.0.0:8320->8320/tcp, :::8320->8320/tcp rtls-le-1 d95d0ae66074 repo.rtlsnet.ru:5000/postgres:9.6 "/entrypoint.sh post…" 44 hours ago Up 5 minutes (healthy) rtls-postgres-1
После старта сервисов должны быть доступны пользовательские интерфейсы, где <ip> адрес машины, на которой развернуто ПО РТЛС
https://<ip>/CToolUI - интерфейс конфигурации
https://<ip>/BA-UI - пользовательский интерфейс
http://<ip>:8420 - ресурсы actobus (при запуске ПО с профилем actobus и ble)
http://<ip>:8520 - ресурсы BLE (при запуске ПО с профилем ble)
Загрузка контейнеров через процедуру import
Первоначальная загрузка образов производится на машине с доступом к репозиторию РТЛС
Получить от РТЛС Логин и Пароль для доступа к репозиторию.
Авторизоваться в docker с полученными параметрами подключения
docker login repo.rtlsnet.ru:5000 Username: *** Password: **** Login Succeeded
На странице доступных релизов найти архив с конфигурацией нужной версии RTLS releases
Скачать и распаковать архив в папку rtls (где <version> версия ПО, которую требуется установить, например v5.0) , <repo-user> имя пользователя для доступа к ресурсам репозитория РТЛС. В процессе выполнения команды curl потребуется ввести пароль для пользователя <repo-user>
mkdir rtls cd rtls export RTLS_VERSION=<version> curl -u <repo-user> -v -L https://repo.rtlsnet.ru/repository/rtls-public/srv/release/$RTLS_VERSION/RTLS-compose-$RTLS_VERSION.tar.gz -o rtls.tar.gz tar -zxvf rtls.tar.gz rm rtls.tar.gz
Загрузить образы в локальное хранилище
docker compose pull
Сохранить образ в файл (где <file_name> имя контейнера, <version> - версия контейнера, например v5.0).
docker save -o <file_name>.tar repo.rtlsnet.ru:5000/name:<version> gzip <file_name>.tar
Повторить процедуру выгрузки для всех необходимых контейнеров
с поддержкой UWB: postgres, srv, le, emqx, emqx_init
с поддержкой LoRa: postgres, srv, le, emqx, emqx_init, redis, actobus
поддержкой BLE (включая получение данных по LoRa): postgres, srv, le, emqx, emqx_init, actobus, ble-solver, redis
Скопировать в домашнюю директорию пользователя appuser на машине, где развертывается ПО архивы
Импортировать каждый контейнер в docker (где <file_name> имя контейнера)
docker load -i <file_name>.tar.gz
Проверить результат импорта (в списке должны появиться версии контейнеров, экспортированные ранее)
docker images
Запустить ПО в зависимости от необходимой конфигурации
запуск с поддержкой UWB
docker compose up -d
запуск с поддержкой получения данных по LoRa
docker compose --profile actobus up -d
Запуск с поддержкой BLE (включая получение данных по LoRa)
docker compose --profile ble up -d
После полного старта контейнера SRV статус должен перейти в healthy
docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c58f0cc80b8e repo.rtlsnet.ru:5000/emqx:4.4.2 "/usr/bin/docker-ent…" 43 hours ago Up 5 minutes (healthy) 1883/tcp, 4369-4370/tcp, 5369/tcp, 6369-6370/tcp, 8081/tcp, 8083-8084/tcp, 8883/tcp, 11883/tcp, 0.0.0.0:18083->18083/tcp, :::18083->18083/tcp rtls-emqx-1 af20240c2d95 repo.rtlsnet.ru:5000/srv:v5.0 "/entrypoint.sh -c s…" 44 hours ago Up 5 minutes (healthy) 0.0.0.0:9993->9993/tcp, :::9993->9993/tcp, 0.0.0.0:80->8080/tcp, :::80->8080/tcp, 0.0.0.0:8300->8081/tcp, :::8300->8081/tcp, 0.0.0.0:443->8443/tcp, :::443->8443/tcp rtls-srv-1 f16b0ad37ef3 repo.rtlsnet.ru:5000/le:v5.0 "/entrypoint.sh '-f …" 44 hours ago Up 5 minutes 0.0.0.0:5683->5683/udp, :::5683->5683/udp, 0.0.0.0:17320-17321->17320-17321/udp, :::17320-17321->17320-17321/udp, 0.0.0.0:8320->8320/tcp, :::8320->8320/tcp rtls-le-1 d95d0ae66074 repo.rtlsnet.ru:5000/postgres:9.6 "/entrypoint.sh post…" 44 hours ago Up 5 minutes (healthy) rtls-postgres-1
После старта сервисов должны быть доступны пользовательские интерфейсы, где <ip> адрес машины, на которой развернуто ПО РТЛС
https://<ip>/CToolUI - интерфейс конфигурации
https://<ip>/BA-UI - пользовательский интерфейс
http://<ip>:8420 - ресурсы actobus (при запуске ПО с профилем actobus и ble)
http://<ip>:8520 - ресурсы BLE (при запуске ПО с профилем ble)
Обновление ПО ( без сохранения данных)
Выключить все контейнеры
cd rtls docker compose stop
Удалить папку rtls
cd ../rtls rm -rf rtls
Провести установку согласно инструкциям раздела Чистая установка ПО РТЛС
Обновление ПО ( сохранением данных)
Посмотреть текущие версии ПО
docker ps
Получить от РТЛС скрипт update.sql для обновления струкруры БД до нужной версии
Выключить все контейнеры
cd rtls docker compose stop
Сделать бекап текущего состояния через изменение имени рабочей директории rtls
cd ../ mv rtls rtls_bup
Скачать и распаковать архив в папку rtls (где <version> версия ПО, которую требуется установить, например v4.3.8)
mkdir rtls cd rtls export RTLS_VERSION=<version> curl -u <repo-user> -v -L https://repo.rtlsnet.ru/repository/rtls-public/srv/release/$RTLS_VERSION/RTLS-compose-$RTLS_VERSION.tar.gz -o rtls.tar.gz tar -zxvf rtls.tar.gz rm rtls.tar.gz
Скопировать сохраненное состояние БД в новую рабочую директорию
cp -R ../rtls_bup/postgres/pgdata ./postgres/
Загрузить со страницы с описанием релиза скрипт update.sql для обновления БД и положить в папку rtls/postgres
Запустить контейнер postgres
docker compose up -d postgres
Запустить процедуру обновления БД, заменить update.sql на правильное название файла, если оно отличается
docker compose exec -ti postgres psql -d postgres -U rtls_pu -f /var/lib/postgresql/data/update.sql
Скопировать конфигурацию emxq контейнера (если исходная версия ПО РТЛС v5.x)
cp -R ../rtls_bup/emqx/data/* srv/emqx/data/
Запустить ПО в зависимости от необходимой конфигурации
запуск с поддержкой UWB
docker compose up -d
запуск с поддержкой получения данных по LoRa
docker compose --profile actobus up -d
Запуск с поддержкой BLE (включая получение данных по LoRa)
docker compose --profile ble up -d
Дождаться полного старта контейнера srv (статус healthy при опросе статуса контейнеров)
docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c58f0cc80b8e repo.rtlsnet.ru:5000/emqx:4.4.2 "/usr/bin/docker-ent…" 43 hours ago Up 5 minutes (healthy) 1883/tcp, 4369-4370/tcp, 5369/tcp, 6369-6370/tcp, 8081/tcp, 8083-8084/tcp, 8883/tcp, 11883/tcp, 0.0.0.0:18083->18083/tcp, :::18083->18083/tcp rtls-emqx-1 af20240c2d95 repo.rtlsnet.ru:5000/srv:v5.0 "/entrypoint.sh -c s…" 44 hours ago Up 5 minutes (healthy) 0.0.0.0:9993->9993/tcp, :::9993->9993/tcp, 0.0.0.0:80->8080/tcp, :::80->8080/tcp, 0.0.0.0:8300->8081/tcp, :::8300->8081/tcp, 0.0.0.0:443->8443/tcp, :::443->8443/tcp rtls-srv-1 f16b0ad37ef3 repo.rtlsnet.ru:5000/le:v5.0 "/entrypoint.sh '-f …" 44 hours ago Up 5 minutes 0.0.0.0:5683->5683/udp, :::5683->5683/udp, 0.0.0.0:17320-17321->17320-17321/udp, :::17320-17321->17320-17321/udp, 0.0.0.0:8320->8320/tcp, :::8320->8320/tcp rtls-le-1 d95d0ae66074 repo.rtlsnet.ru:5000/postgres:9.6 "/entrypoint.sh post…" 44 hours ago Up 5 minutes (healthy) rtls-postgres-1
Скопировать данные о картографических слоях, созданных в предыдущей версии ПО в рабочую папку
cp -R ../rtls_bup/srv/geoserver-data/data/rtls srv/geoserver-data/data/ cp -R ../rtls_bup/srv/geoserver-data/workspaces/rtls/site* srv/geoserver-data/workspaces/rtls/
Перезапустить контейнер сервера приложений
docker compose restart srv
Авторизоваться в BA-UI и проверить, что загруженные ранее карты доступны для работы
- No labels