Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Структура ПО РТЛС

Info

По умолчанию все модули имеют между собой связь средствами docker с возможностью установки каждого модуля на отдельной машине

Подготовка к развертыванию системы РТЛС

Минимальные требования (по умолчанию требования указаны для конфигурации UWB + LE + SRV и развертывании в пределах одной машины и могут меняться в зависимости от используемых модулей, конфигурации инфраструктуры, кол-ва меток, частоты обновления данных от меток, сроков хранения данных и т.д. ):

OS

Ubuntu Server 20.04, Ubuntu Server 22.04, Debian 11

CPU

4 (min) 6 (recommended) cores CPU, 2GHz

RAM

6 Gb

FS

50 Gb

Порты

443/tcp, 5683/udp

* с поддержкой DTLS на анкерах

5684/udp

* с поддержкой LoRaWAN для получения траффика с БС

1700/tcp


Подготовка ОС к установке ПО РТЛС

Info

Все команды по конфигурации ОС и установке пакетов производятся под пользователем с административными правами (здесь и далее пользователь appuser). Все команды здесь и далее приведены для Ubuntu Server 20.04. Инструкции по установке на другие версии OS: docker и docker-compose

  1. Удалить старые версии пакетов Docker Engine (если были установлены ранее) . Docker, запущенный через snap, должен быть удален!

    Code Block
    sudo apt-get remove docker docker-engine docker.io containerd runc
    sudo snap remove docker
  2. Добавить репозиторий

    Code Block
    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
  3. Установить последние версии пакетов Docker Engine

    Code Block
    sudo apt-get update
    sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
  4. Проверить , что пакеты установились успешно

    Code Block
    docker version
    docker compose version
  5. Пользователя, под которым будет производится управление ПО РТЛС, добавить в группу docker

    Code Block
    sudo usermod -aG docker appuser
  6. Повторно авторизоваться под пользователем appuser для применения прав доступа


Чистая установка ПО РТЛС

Info

Все команды производятся под пользователем appuser

  1. Получить от РТЛС Логин и Пароль для доступа к репозиторию.

  2. Авторизоваться в docker с полученными параметрами подключения

    Code Block
    docker login repo.rtlsnet.ru:5000
    Username: ***
    Password: ****
    Login Succeeded
  3. На странице доступных релизов найти архив с конфигурацией нужной версии RTLS releases

  4. Скачать и распаковать архив в папку rtls (где <version> версия ПО, которую требуется установить, например v5.0) , <repo-user> имя пользователя для доступа к ресурсам репозитория РТЛС. В процессе выполнения команды curl потребуется ввести пароль для пользователя <repo-user>

    Code Block
    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 -xvf rtls.tar.gz
    rm rtls.tar.gz
  5. Запустить ПО в зависимости от необходимой конфигурации

    1. запуск с поддержкой UWB

      Code Block
      docker compose up -d
    2. запуск с поддержкой получения данных по LoRa

      Code Block
      docker compose --profile actobus up -d
    3. Запуск с поддержкой BLE (включая получение данных по LoRa)

      Code Block
      docker compose --profile ble up -d
  6. После полного старта контейнера SRV статус должен перейти в healthy

    Code Block
    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
    
  7. После старта сервисов должны быть доступны пользовательские интерфейсы, где <ip> адрес машины, на которой развернуто ПО РТЛС

    1. https://<ip>/CToolUI - интерфейс конфигурации

    2. https://<ip>/BA-UI - пользовательский интерфейс

    3. http://<ip>:8420 - ресурсы actobus (при запуске ПО с профилем actobus и ble)

    4. http://<ip>:8520 - ресурсы BLE (при запуске ПО с профилем ble)


Загрузка контейнеров через процедуру import

Info

Первоначальная загрузка образов производится на машине с доступом к репозиторию РТЛС

  1. Получить от РТЛС Логин и Пароль для доступа к репозиторию.

  2. Авторизоваться в docker с полученными параметрами подключения

    Code Block
    docker login repo.rtlsnet.ru:5000
    Username: ***
    Password: ****
    Login Succeeded
  3. На странице доступных релизов найти архив с конфигурацией нужной версии RTLS releases

  4. Скачать и распаковать архив в папку rtls (где <version> версия ПО, которую требуется установить, например v5.0) , <repo-user> имя пользователя для доступа к ресурсам репозитория РТЛС. В процессе выполнения команды curl потребуется ввести пароль для пользователя <repo-user>

    Code Block
    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 -xvf rtls.tar.gz
    rm rtls.tar.gz
  5. Загрузить образы в локальное хранилище

    Code Block
    docker compose pull
  6. Сохранить образ в файл (где <file_name> имя контейнера, <version> - версия контейнера, например v5.0).

    Code Block
    docker save -o <file_name>.tar repo.rtlsnet.ru:5000/name:<version>
    gzip <file_name>.tar
  7. Повторить процедуру выгрузки для всех необходимых контейнеров

    1. с поддержкой UWB: postgres, srv, le, emqx, emqx_init

    2. с поддержкой LoRa: postgres, srv, le, emqx, emqx_init, redis, actobus

    3. поддержкой BLE (включая получение данных по LoRa): postgres, srv, le, emqx, emqx_init, actobus, ble-solver, redis

  8. Скопировать в домашнюю директорию пользователя appuser на машине, где развертывается ПО архивы

  9. Импортировать каждый контейнер в docker (где <file_name> имя контейнера)

    Code Block
    docker load -i <file_name>.tar.gz
  10. Проверить результат импорта (в списке должны появиться версии контейнеров, экспортированные ранее)

    Code Block
    docker images
  11. Запустить ПО в зависимости от необходимой конфигурации

    1. запуск с поддержкой UWB

      Code Block
      docker compose up -d
    2. запуск с поддержкой получения данных по LoRa

      Code Block
      docker compose --profile actobus up -d
    3. Запуск с поддержкой BLE (включая получение данных по LoRa)

      Code Block
      docker compose --profile ble up -d
  12. После полного старта контейнера SRV статус должен перейти в healthy

    Code Block
    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
    
  13. После старта сервисов должны быть доступны пользовательские интерфейсы, где <ip> адрес машины, на которой развернуто ПО РТЛС

    1. https://<ip>/CToolUI - интерфейс конфигурации

    2. https://<ip>/BA-UI - пользовательский интерфейс

    3. http://<ip>:8420 - ресурсы actobus (при запуске ПО с профилем actobus и ble)

    4. http://<ip>:8520 - ресурсы BLE (при запуске ПО с профилем ble)


Обновление ПО ( без сохранения данных)

  1. Выключить все контейнеры

    Code Block
    cd rtls
    docker compose stop

    Удалить папку rtls

    Code Block
    cd ../rtls
    rm -rf rtls
  2. Провести установку согласно инструкциям раздела Чистая установка ПО РТЛС


Обновление ПО ( сохранением данных)

  1. Посмотреть текущие версии ПО

    Code Block
    docker ps
  2. *Получить от РТЛС скрипт update.sql для обновления струкруры БД до нужной версии, если скрипт отсутствует на странице описания релиза, обновление БД не требуется. Не требуется для версий ПО РТЛС выше 6.6

  3. Выключить все контейнеры

    Code Block
    cd rtls
    docker compose stop
  4. Сделать бекап текущего состояния через изменение имени рабочей директории rtls

    Code Block
    cd ../
    mv rtls rtls_bup
  5. Скачать и распаковать архив в папку rtls (где <version> версия ПО, которую требуется установить, например v4.3.8)

    Code Block
    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
  6. Скопировать сохраненное состояние БД в новую рабочую директорию

    Code Block
    cp -R ../rtls_bup/postgres/pgdata ./postgres/
    cp -R ../rtls_bup/postgres/tablespaces ./postgres/tablespaces
  7. * Загрузить со страницы с описанием релиза скрипт update.sql для обновления БД и положить в папку rtls/postgres. Для версий ПО РТЛС выше 6.6 пп.7-9 можно пропустить

  8. Запустить контейнер postgres

    Code Block
    docker compose up -d postgres
  9. * Запустить процедуру обновления БД, заменить update.sql на правильное название файла, если оно отличается

    Code Block
    docker compose exec -ti postgres psql -d postgres -U rtls_pu -f /var/lib/postgresql/data/update.sql
  10. Скопировать конфигурацию emxq контейнера (если исходная версия ПО РТЛС v5.x и были дополнительные настройки интеграции в EMQX в процессе работы, иначе можно пропустить)

    Code Block
    cp -R ../rtls_bup/emqx/data/* emqx/data/
  11. Скопировать параметры конфигурации контейнеров 
    Code Block
    cp -R ../rtls_bup/.env ./
  12. Запустить ПО в зависимости от необходимой конфигурации

    1. запуск с поддержкой UWB

      Code Block
      docker compose up -d
    2. запуск с поддержкой получения данных по LoRa

      Code Block
      docker compose --profile actobus up -d
    3. Запуск с поддержкой BLE (включая получение данных по LoRa)

      Code Block
      docker compose --profile ble up -d
  13. Дождаться полного старта контейнера srv (статус healthy при опросе статуса контейнеров)

    Code Block
    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
  14. Скопировать данные о картографических слоях, созданных в предыдущей версии ПО в рабочую папку

    Code Block
    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/
  15. Перезапустить контейнер сервера приложений

    Code Block
    docker compose restart srv
  16. Авторизоваться в BA-UI и проверить, что загруженные ранее карты доступны для работы


Table of Contents
maxLevel7
minLevel1
stylenone
printablefalse