Перейти к содержанию

Установка LUNA PASS#

Данный раздел описывает установку и использование Docker Compose для развертывания LUNA PASS, а также установку зависимостей LUNA PASS API.

Ниже приведены команды для CentOS.

Установка Docker и Docker Compose#

Для корректной работы сервиса необходимо настроить SSL и NGINX, подробнее см. "Запуск примеров LUNA PASS UI".

Docker и Docker Compose не входят в дистрибутив LUNA PASS. Используйте официальную инструкцию для установки Docker Engine и Docker Compose для ОС CentOS.

Актуальная инструкция по установке представлена ниже.

Установите дополнительные зависимости:

yum install -y yum-utils

Добавьте репозиторий Docker:

yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

Установите последнюю версию Docker:

yum install docker-ce docker-ce-cli containerd.io

Проверьте корректность установки:

docker -v

Скачайте Docker Compose:

curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

Установите права доступа (разрешить выполнение):

chmod +x /usr/local/bin/docker-compose

Запустите Docker:

systemctl start docker
systemctl enable docker

Проверьте статус Docker:

systemctl status docker

Авторизация в registry#

Получите образы сервисов из dockerhub.visionlabs.ru (VisionLabs registry) для запуска. Перед этим авторизуйтесь — получите логин и пароль у специалистов компании VisionLabs, затем введите полученные данные для авторизации:

docker login dockerhub.visionlabs.ru --username <username> --password <password>

Подготовка и распаковка дистрибутива#

Дистрибутив представляет собой архив вида «luna_pass_1.8.2».

Перед процессом установки поместите файлы дистрибутива в директорию на сервере. Например, в директорию /root. В данной директории не должно быть других файлов дистрибутива кроме целевых, используемых для установки конечного продукта.

Выполните следующие действия.

1․ Переключитесь в режим суперпользователя root:

sudo su

2․ Создайте директорию для распаковки дистрибутива:

mkdir -p /var/lib/luna-pass

3․ Переместите дистрибутив в созданную директорию:

mv /root/luna-pass-1.8.2 /var/lib/luna-pass

4․ Установите архиватор unzip, если он не установлен:

yum install unzip

5․ Перейдите в директорию с дистрибутивом:

cd /var/lib/luna-pass

6․ Распакуйте файлы:

unzip luna-pass-1.8.2.zip

7․ Создайте символьную ссылку. Ссылка указывает, что именно текущая версия дистрибутива используется для запуска:

ln -s luna-pass-1.8.2 current

Если отсутствует ссылка /var/lib/luna-pass/current, скрипты запуска не смогут определить расположение бинарных файлов текущего релиза, а также будет невозможна дальнейшая установка.

Запуск LUNA PASS#

Сформируйте файлы license.conf, lunapassvideo.config.toml, lunapassvideo.task.py, lunapassapi.config.toml, docker-compose.yml из примеров лежащих в поставке. Внесите актуальные данные и настройки в файлы перед запуском в docker. Данные для внесения см. в разделе "Настройка сервиса"

Режимы работы сетей в Docker#

Сетевая Docker подсистема подключается с помощью драйверов:

  • host — сетевой драйвер для автономных контейнеров. Удаляет сетевую изоляцию между контейнером и Docker хостом;
  • container:
  • bridge — сетевой драйвер по умолчанию. Используется, когда приложения запускаются в автономных контейнерах, которые должны взаимодействовать между собой.

Запуск LUNA PASS в режиме host#

1․ Перейдите в директорию Docker:

cd /var/lib/luna-pass/current/example-docker/host

Убедитесь, что в файле license.conf указаны корректные данные лицензии.

2․ Создайте файлы настроек используемых сервисов (например, из example-файлов, лежащих в каждом сервисе) для последующего монтирования в docker. Для запуска сервиса введите команду:

docker-compose up -d

3․ Проверьте статус всех запущенных Docker контейнеров.

docker-compose ps

Запуск LUNA PASS в режиме container#

1․ Перейдите в директорию Docker:

cd /var/lib/luna-pass/current/example-docker/container

Убедитесь, что в файле license.conf указаны корректные данные лицензии.

2․ Создайте файлы настроек используемых сервисов (напрмиер, из example-файлов, лежащих в каждом сервисе) для последующего монтирования в docker. Для запуска сервиса введите команду:

docker-compose up -d

3․ Проверьте статус всех запущенных Docker контейнеров.

docker-compose ps

Установка зависимостей#

Установка зависимостей LUNA PASS API при наличии доступа в Интернет#

Для корректной установки зависимостей сервиса в системе должны быть установлены пакеты gcc, python3-devel.

Перейдите в директорию /lunapassapi.

Установите системные пакеты, если они ещё не установлены:

yum install -y gcc python3-devel

Выполните следующие действия.

1․ Перейдите в директорию модуля:

cd /var/lib/luna-pass/current/lunapassapi

2․ Создайте виртуальное окружение:

python3.9 -m venv venv

3․ Активируйте виртуальное окружение:

source venv/bin/activate

4․ Запустите установку зависимостей Python:

pip3.6 install -r requirements.txt

5․ Деактивируйте виртуальную среду:

deactivate

Установка зависимостей LUNA PASS API при отсутствии доступа в Интернет#

Предварительно на машине с доступом в Интернет необходимо скачать необходимые для работы сервиса пакеты под целевую платформу, где будет разворачиваться сервис.

Все действия проводятся в директории /lunapassapi.

1․ Создайте виртуальное окружение:

python3.9 -m venv venv

2․ Активируйте виртуальное окружение:

source venv/bin/activate

3․ Скачайте необходимые для работы сервиса пакеты. Целевая платформа указывается в ключе --platform, в данном случае показан пример для сбора зависимостей для платформы CentOS:

pip download -d ./packs/ -r requirements.txt --platform=linux_x86_64 --python-version=3.9 --no-deps --prefer-binary

4․ Деактивируйте виртуальную среду:

deactivate

После получения всех необходимых зависимостей, которые будут располагаться в директории /lunapassapi/packs, перенесите директорию /packs на целевую платформу. После переноса произведите установку.

Все действия проводятся в директории /lunapassapi, при условии, что в ней уже располагается директория /packs, содержащая все необходимые зависимости под целевую платформу.

5․ Перейдите в директорию модуля:

cd /var/lib/luna-pass/current/lunapassapi

6․ Активируйте виртуальное окружение:

source venv/bin/activate

7․ Установите все необходимые зависимости из локальной директории:

pip install -r requirements.txt --no-index --find-links=packs

Сервисные файлы LUNA PASS API#

Для сервиса в поставке присутствует unit-файл. Следует скопировать этот файл в директорию /system для запуска сервиса после установки. Выполните следующие действия.

1․ Скопируйте файлы сервисов из комплекта поставки в системную директорию:

cp /var/lib/luna-pass/current/extras/systemd/lunapassapi.service /etc/systemd/system/

2․ Перезагрузите системные сервисы:

systemctl daemon-reload

Запуск LUNA PASS API#

Запустите сервис LUNA PASS API и добавьте в автозагрузку.

systemctl start lunapassapi.service

systemctl enable lunapassapi.service