Установка и настройка LUNA CARS#
Алгоритмы установки системы LUNA CARS представлены для ОС Centos 8 Stream и RedOS Murom 7.3.2. Подготовка, лицензирование и т. д. имеют одинаковый набор шагов для каждой системы. Разные команды используются только при установке Docker и Docker Compose.
Подготовка к установке#
Убедитесь в том, что вы являетесь root-пользователем перед тем, как начать установку!
Перед установкой скачайте и распакуйте архив дистрибутива и поместите файлы дистрибутива в отдельную папку на сервере.
1․ Установите архиватор, если он не установлен:
dnf -y install unzip bzip2
2․ Перейдите в директорию, где располагается архив и распакуйте дистрибутив:
unzip cars-installer_v.2.10.1.zip
Также перед установкой может понадобиться выполнить отключение сервиса Firewalld и остановку работы SELinux.
Отключение Firewalld и SELinux являются обязательными при установке на ОС CentOS. В случае установки на ОС RedOS, данные шаги являются обязательными только при условии, если на ОС уже ранее выполнялись какие-либо настройки. Также настройка данных сервисов может помочь при возникновении ошибок запуска Системы.
1․ Отключите сервис Firewalld:
systemctl disable --now firewalld
Остановите работу SELinux:
4․ Откройте конфигурационный файл SELinux:
nano /etc/selinux/config
Установите текстовый редактор nano при необходимости или используйте любой другой.
5․ Укажите значение переменной SELINUX=disabled
. Пример файла приведен ниже
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
6․ Выполните перезагрузку сервера для применения изменений:
reboot
Подготовка к лицензированию#
Установка и настройка HASP#
Перед получением лицензии необходимо поставить утилиту HASP на сервер.
При установке с помощью Ansible (п.2.8) утилита HASP устанавливается и запускается автоматически на каждом сервере, где установлены CARS Stream и CARS API.
В случае использования отдельного сервера для загрузки сетевой лицензии (п.2.3.3.1), HASP необходимо устанавливать вручную вне зависимости от способа установки системы.
1․ Перейдите в директорию с дистрибутивом утилиты HASP:
cd cars-installer_v.2.10.1/extras/hasp/
Выполните следующие команды для установки утилиты:
2․ Распакуйте архив утилиты
tar -xf aksusbd-8.tar.bz2
1․ Войдите в папку с файлом установки
cd aksusbd-8/
4․ Запустите скрипт установки и запуска утилиты
./dinst
5․ Проверьте текущий статус утилиты с помощью команды:
systemctl status aksusbd
В случае успешного запуска утилиты результатом выполненной команды будет следующее сообщение:
aksusbd.service - LSB: Sentinel LDK RTE
Loaded: loaded (/etc/rc.d/init.d/aksusbd; bad; vendor preset: disabled)
Active: active (running) since Tue 2021-06-29 16:32:43 MSK; 1 day 19h ago
Docs: man:systemd-sysv-generator(8)
CGroup: /system.slice/aksusbd.service
├─909 /usr/sbin/aksusbd
├─920 /usr/sbin/winehasp
└─953 /usr/sbin/hasplmd -s
Получение отпечатка сервера#
Для получения лицензии необходим файл отпечатка (fingerprint) сервера.
Генерировать файл отпечатка сервера необходимо при работающей утилите HASP.
При установке с помощью Ansible (п.2.8) необходимо предварительно установить Ansible (п.2.8.1), после чего запускать процесс получения отпечатка.
1․ Перейдите к директорию /extras/licenseAssist/bin
:
cd cars-installer_v.2.10.1/extras/licenseAssist/bin
2․ Сгенерируйте отпечаток системы с помощью следующего скрипта:
./LicenseAssist fingerprint произвольное_имя.c2v
3․ В некоторых случаях может возникать ошибка доступа. Необходимо дать права скрипту и повторить процесс:
chmod +x LicenseAssist
По завершении процесса генерации отпечатка системы, его необходимо добавить в запрос на получение лицензии.
Отправьте файл отпечатка системы вместе с данными, указанными в п.1.3, сотруднику VisionLabs для дальнейшего получения лицензии.
Сотрудник VisionLabs в ответе на запрос направит письмо с файлом лицензии в формате «*.v2c». Данный файл необходимо использовать для активации лицензии.
Установка LUNA CARS при помощи Docker#
Установка Docker и Docker compose#
Установка на ОС CentOS 8 Stream#
Используйте официальную инструкцию для установки Docker и Docker-compose под CentOS. Актуальная на момент написания документа инструкция представлена ниже.
1․ Выполните команду удаления прошлых версий Docker и Docker-compose:
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2․ Выполните удаление утилит, которые могут вызвать конфликты:
yum remove podman runc
3․ Установите дополнительные зависимости:
yum install yum-utils
4․ Добавьте репозиторий Docker в менеджер установки:
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
5․ Установите Docker:
yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
6․ Включите сервис Docker:
systemctl enable docker
7․ Запустите Docker:
systemctl start docker
8․ Проверьте корректность установки:
docker -v
9․ Проверьте корректность установки Docker compose – выполните команду на получение версии:
docker compose version
Установка на ОС RedOS Murom 7.3.2#
1․ Установите Docker и Docker Compose с помощью команды:
dnf install docker-ce docker-compose
2․ Включите сервис Docker:
systemctl enable docker
3․ Запустите Docker:
systemctl start docker
Настройка файла окружения «.env»#
Файл «.env» располагается в корне дистрибутива инсталлятора.
Каждый параметр имеет свою рекомендацию по изменению.
Описание рекомендаций представлено в [Приложении 1].
Файл «.env» содержит пароли и адреса, которые могут узнать третьи лица, так как файл не защищен от просмотра по умолчанию. Рекомендуется закрыть доступ к файлу средствами Linux. Описание прав доступа Linux находится за рамками данного руководства.
Перед установкой необходимо задать настройки учетной записи для выгрузки дистрибутивов. Откройте файл «.env» в текстовом редакторе:
nano .env
И заполните значения для параметров DOWNLOAD_USER
и DOWNLOAD_PASSWORD
.
Запросите логин и пароль для данных параметров у сотрудника VisionLabs.
Примените изменения и сохраните файл «.env».
Остальные параметры файла окружения «.env» представлены в Приложении 2.
Активация лицензии#
Способ активации лицензии зависит от ее типа (см.п.1.2).
Активация cетевой лицензии#
Для активации Сетевой лицензии на основном сервере, где был установлен HASP, необходимо загрузить полученный файл лицензии через веб-интерфейс HASP.
Для этого перейдите в браузере по следующему адресу (данный адрес доступен только на сервере, где установлен HASP):
http://<IP_address_HASP_server>:1947
На странице «Update/Attach» добавьте файл лицензии и нажмите «Apply File» (Рисунок 1).
После применения изменений система отобразит сообщение об успешной загрузке файла (Рисунок 2).
После этого необходимо выполнить настройку файла «.env» (см. подробнее в п.2.3.2): укажите IP-адрес сервера, с установленным HASP в значении параметра HASP_LICENSE_SERVER
.
Сохраните файл и выйдите из него. После этого установка системы LUNA CARS будет выполнена корректно.
Активация локальной триальной лицензии#
Для активации триальной лицензии доступны 2 способа: ручной и автоматизированный.
1․ Ручной способ активации триальной лицензии
При ручной активации триальной лицензии лицензируется каждый контейнер CARS API и CARS Stream (Рисунок 3).
Для лицензирования каждого контейнера необходимо выполнить загрузку файла лицензии через веб-интерфейс HASP через соответствующий порт (Таблица 3).
Таблица 3. HASP порты для контейнеров CARS API и CARS Stream
Контейнер | Порт |
---|---|
CARS Stream 1 | 1948 |
CARS Stream 2 | 1949 |
CARS Stream 3 | 1950 |
CARS Stream 4 | 1951 |
CARS API 1 | 1952 |
CARS API 2 | 1953 |
Активация лицензии для контейнера CARS Stream:
Активацию лицензии следует проводить только для установленных экземпляров CARS Stream. Если устанавливается только один экземпляр, активацию необходимо выполнить только на первом порте. При использовании дополнительных экземпляров следует выполнить активацию на последующих портах.
1․ Перейдите в браузере по адресу:
http://<IP_address_HASP_server>:<port_CARS_Stream>
2․ На странице «Update/Attach» добавьте файл лицензии и нажмите «Apply File» см. Рисунок 1. 3․ После применения изменений система отобразит сообщение об успешной загрузке файла см. Рисунок 2.
Активация лицензии для контейнеров CARS API:
- Контейнер CARS API 1
Перейдите в браузере по адресу:
http://<IP_address_HASP_server>:1951
Повторите пункты 2 и 3, описанные выше.
- Контейнер CARS API 2
Перейдите в браузере по адресу:
http:///<IP_address_HASP_server>:1952
Повторите пункты 2 и 3, описанные выше.
Порты HASP контейнеров CARS API и CARS Stream задаются при установке в переменных
API_HASP_PORT_START
,API_HASP_PORT_END
иSTREAM_HASP_PORT#
в файле «.env».Обратите внимание, что переменные
API_HASP_PORT_START
иAPI_HASP_PORT_END
являются диапазоном портов, т.е. при установке CARS API на множество серверов, в данные переменные необходимо внести значения крайних портов диапазона. Лицензия при этом должна быть загружена в каждый из множества портов.
После этого установка системы LUNA CARS будет выполнена корректно.
При использовании данного способа активация лицензии должна повторяться после каждой остановки и запуска контейнеров.
2․ Автоматизированный способ активации локальной триальной лицензии
Для автоматизированной активации триальной лицензии необходимо:
- Сохранить файл триальной лицензии на сервере, где происходит установка системы.
- Внести изменения в конфигурационный файл «.env» (см. подробнее в п.2.3.2): необходимо в параметре
HASP_LICENSE_FILE
указать полный путь до файла лицензии на сервере.
Данные шаги необходимо выполнить только один раз даже при условии установки множества экземпляров CARS Stream и CARS API.
Сохраните файл и выйдите из него. После этого установка системы LUNA CARS будет выполнена корректно.
Устранение неполадок#
1․ Вышел срок действия лицензии. Пример сообщения об ошибке в логах контейнера CARS Stream:
stream_1 | E0323 03:30:44.465771 61 LicenseChecker.cpp:14] [23.03.2023 03:30:44] [Error] [Session] Sentinel protection key not available. (HASP_HASP_NOT_FOUND).
stream_1 | E0323 03:30:44.465786 61 LicenseChecker.cpp:48] Licensing. Feature with id = 303 doesn't exist.
stream_1 | E0323 03:30:44.465792 61 main.cpp:213] Couldn't initialize app
Необходимо обратиться к сотрудникам VisionLabs для получения обновленной лицензии. Данная ошибка говорит об использовании не актуальной версии лицензии или ее отсутствии.
2․ Несоответствие лицензии составу оборудования. Пример сообщения об ошибке в логах контейнера CARS Stream:
stream2_1 | E0317 05:52:01.408428 20 LicenseChecker.cpp:59] Licensing error. Maximum number of processors for this machine is equal 8, current number of processors is equal 72
Необходимо также обратиться к сотрудникам VisionLabs и предоставить актуальные данные о количестве ядер CPU. Данная ошибка предупреждает о том, что количество ядер, указанное при запросе лицензии, не совпадает с реальным количеством ядер на сервере.
Запуск установки при помощи Docker#
Скрипт установки располагается в корне дистрибутива инсталлятора. Зайдите в корень дистрибутива:
cd cars-installer_v.2.10.1
Запустите скрипт установки:
./docker_start_all.sh vanilla
vanilla — стандартный режим работы системы
Первичный запуск скрипта может занять несколько минут.
Запуск системы#
После полной установки, для входа в веб-интерфейс необходимо открыть в браузере следующий адрес:
http:///<IP_address>:8080
Указан порт по умолчанию, порт задается в переменной
ANALYTICS_FRONTEND_PORT
в конфигурационном файле «.env».
Для авторизации в CARS Analytics от лица администратора используйте следующие данные:
- Логин – admin@test.ru;
- Пароль – test_admin.
Остановка работы LUNA CARS при помощи Docker#
При необходимости остановить работу системы LUNA CARS, вне зависимости от конфигурации запущенных компонентов, запустите скрипт остановки в корне дистрибутива инсталлятора:
./docker_stop_all.sh
Установка LUNA CARS без доступа к сети Интернет при помощи Docker#
В случаях если на сервере, где требуется запустить LUNA CARS, нет доступа к сети Интернет необходимо выполнить следующие действия.
Данный сервер должен иметь установленный Docker, Docker-compose и HASP.
1․ Настройте и подготовьте систему, отредактировав файл «.env» согласно п.2.3.2 на сервере, где есть доступ в сеть Интернет. 2․ Запустите скрипт сохранения Docker образов:
./docker_save_all.sh
3․ Перенесите любым удобным способом полученный дистрибутив инсталлятора на целевой сервер.
4․ Запустите скрипт восстановления:
./docker_restore.sh
5․ Проверьте работоспособность системы, открыв в веб-браузере адрес:
http://<IP_address>:8080
Указан порт по умолчанию, порт задается в переменной
ANALYTICS_FRONTEND_PORT
в конфигурационном файле «.env».
Для авторизации в CARS Analytics от лица администратора используйте следующие данные:
- Логин – admin@test.ru;
- Пароль – test_admin.
Настройка конфигурационных файлов CARS Stream и CARS API#
CARS Stream и CARS API включают в себя несколько конфигурационных файлов, которые могут быть настроены после установки.
Так как дистрибутив CARS Installer не включает в себя дистрибутивы компонентов LUNA CARS, редактирование параметров возможно только после скачивания и установки дистрибутивов.
Алгоритм изменения параметров:
1․ Выполните команду для просмотра списка запущенных Docker-контейнеров
docker ps
2․ Зайдите в контейнер по его идентификатору:
docker exec -it <id контейнера> bash
3․ Отредактируйте необходимые конфигурационные файлы с помощью текстового редактора и сохраните изменения.
Список и расположение конфигурационных файлов см. в руководствах администратора CARS Stream и CARS API.
4․ Выйдите из контейнера и перезапустите контейнер
docker restart <id контейнера>
CARS Analytics не требует настройки конфигурационных файлов.
Установка с помощью Ansible скриптов#
Система LUNA CARS может быть установлена на сервер с помощью Ansible.
Данный способ установки доступен только при использовании ОС CentOS 8 Stream.
Для установки с помощью Ansible могут использоваться несколько серверов:
- Установочный сервер – сервер, на котором устанавливается Ansible. Данный сервер подключается к целевому серверу с помощью SSH и выполняется удаленная установка системы LUNA CARS на целевой сервер;
- Целевой сервер – сервер, на который устанавливается LUNA CARS или одна из подсистем.
Схема работы с помощью двух серверов представлена на Рисунке (Рисунок 4).
Использование разных серверов для Ansible и для LUNA CARS – не обязательное условие. Полная установка всех ПО может быть выполнена на одном сервере. В данном случае единственный сервер будет выполнять роль и установочного сервера, и целевого.
Установка Ansible#
Для установки с помощью Ansible выполните подготовку установочного сервера (п.2.1), после чего установите на него пакет Ansible, выполнив следующие команды.
Для ОС CentOS 8 Stream установка Ansible выполняется с помощью пакетного менеджера.
Установите дополнительные репозитарии:
dnf install epel-release
Выполните установку Ansible:
dnf install ansible
Устранение неполадок#
В случае возникновения ошибок локализации, для устранения неполадок выполните следующие команды:
export LC_ALL="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
Настройка SSH#
Для корректной установки необходимо сгенерировать SSH-ключ и добавить его на целевой сервер.
Для начала необходимо проверить и настроить SSH сервис.
Установите SSH сервис на целевом сервере:
yum install openssh-server
Запустите сервис:
systemctl start sshd
Проверьте работоспособность SSH сервиса:
systemctl status sshd
Сгенерируйте открытый SSH-ключ на установочном сервере:
ssh-keygen
При необходимости можно задать ключевую фразу или оставить её пустой.
Для копирования ключа на целевой сервер выполните команду:
ssh-copy-id username@hostname
где «username» - имя авторизованного пользователя, а «hostname» - IP-адрес целевого сервера.
Данный способ не является единственно возможным. Вы можете использовать любой другой удобный способ для обеспечения SSH-доступа на целевой сервер.
Настройка файла инвентаризации#
В комплекте поставки присутствуют файлы «hosts» и «hosts-single». Эти файлы расположены в директории /ansible
.
Файл «hosts-single» — пример файла инвентаризации для установки компонентов системы на одном сервере (Рисунок 5).
Файл «hosts» — пример файла инвентаризации для установки компонентов системы на разных серверах (Рисунок 6).
При установке на один сервер в файле «hosts-single» необходимо задать внешний IP-адрес целевого сервера, куда будет происходить установка системы. Если установка будет происходит локально с использованием дистрибутива, который находится на внешней машине, то необходимо указать IP_адрес локальной машины.
Установка может производиться локально на одной машине, при этом необходимо соблюдать требования к необходимости ввода внешнего IP-адреса и возможности доступа по SSH.
#frontend компонент
[frontend]
<IP_address>
#Only 1 host
#ip-адрес БД
[postgres]
<IP_address>
#Only 1 host
#ip-адрес redis
[redis]
<IP_address>
#CARS API
#Multiple hosts allowed
#ip-адрес CARS API
[api]
<IP_address>
#Only 1 host
#ip-адрес балансировщика нагрузки nginx для CARS API
[nginx]
<IP_address>
#CARS Stream
#Only 1 host
#ip-адрес CARS Stream
[stream]
<IP_address>
При установке компонент на разных серверах, в файле «hosts» для каждого компонента необходимо задать внешний IP-адрес целевого сервера, куда будет устанавливаться непосредственно этот компонент.
#CARS.Analytics
#Only 1 host
[frontend]
<IP_address>
#Only 1 host
[backend]
<IP_address>
#Only 1 host
[postgres]
<IP_address>
#Only 1 host
[redis]
<IP_address>
#CARS.API
#Multiple hosts allowed
[api]
<<IP_address_1>
<IP_address_2>
<…>
<IP_address_#>
#Only 1 host
[nginx]
<IP_address>
#CARS.Stream
#Multiple hosts allowed
[stream]
<IP_address_1>
<IP_address_2>
<…>
<IP_address_#>
[Analytics_ALL:children]
frontend
backend
postgres
redis
[Api_ALL:children]
api
nginx
Лицензирование системы при установке с помощью Ansible#
При установке системы с помощью Ansible не нужно отдельно устанавливать утилиту HASP.
Для получения лицензии необходимо создать отпечаток сервера (см.п.2.2.2) и передать данные сотруднику VisionLabs.
При установке системы на один сервер возможно использование Локальной коммерческой лицензии. При установке компонент системы на разные сервера рекомендуется использовать Сетевую лицензию.
При установке компонент системы на разные сервера, для формирования отпечатка системы, выбирайте наиболее стабильный сервер, который будет являться основным и работать непрерывно.
Активация Локальной коммерческой лицензии#
Активация Локальной коммерческой лицензии и Сетевой коммерческой лицензии выполняется по одному алгоритму, описанному в пункте 2.3.3.1.
Активация Сетевой лицензии должна происходить на основном сервере установки.
Активация Локальной триальной лицензии при установке компонент на разные сервера#
Для активации триальной лицензии при установке компонент на разные сервера доступны 2 способа: ручной и автоматизированный.
1․ Ручной способ активации триальной лицензии
При использовании Триальной лицензии в случае установки компонент системы на разные сервера, необходимо лицензировать отдельно каждый сервер, где установлены CARS API и CARS Stream.
Активация лицензии для сервера с CARS Stream:
1․ Перейдите в браузере по адресу:
http://<IP_address_STREAM_server>:1947
2․ На странице «Update/Attach» добавьте файл лицензии и примените изменения (п.2.3.3.1, Рисунок 1).
3․ После применения изменений система отобразит сообщение об успешной загрузке файла (п.2.3.3.1, Рисунок 2).
Активация лицензии для серверов CARS API:
- Контейнер CARS API 1
Перейдите в браузере по адресу:
http://<IP_address_API_server_1>:1947
Повторите пункты 2 и 3, описанные выше.
- Контейнер CARS API 2
Перейдите в браузере по адресу:
http://<IP_address_API_server_2>:1947
Повторите пункты 2 и 3, описанные выше.
2․ Автоматизированный способ активации локальной триальной лицензии
Для автоматизированной активации триальной лицензии необходимо:
- Сохранить файл триальной лицензии на сервере, где установлен HASP.
- Внести изменения в конфигурационный файл «all.yml» на сервере, где установлен HASP (см. подробнее в п.2.8.5): необходимо в параметре
HASP_LICENSE_FILE
указать полный путь до файла лицензии на сервере.
Данные шаги необходимо выполнить только один раз даже при условии установки множества экземпляров CARS Stream и CARS API.
Сохраните файл и выйдите из него. После этого установка системы LUNA CARS будет выполнена корректно.
Настройка файла конфигурации «all.yml»#
При необходимости выполните настройку файла «all.yml».
Описание параметров файла представлено в Приложении 3.
Данный файл располагается в директории /ansible/group_vars/
.
Каждый параметр имеет свою рекомендацию по изменению.
Описание рекомендаций представлено в Приложении 1.
Примените изменения и сохраните файл «all.yml».
Настройка файла окружения «.env»#
Перед установкой необходимо задать настройки учетной записи для выгрузки дистрибутивов. Для этого перейдите в корень инсталлятора:
cd cars-installer_v.*.*.*
Замените * на номер используемой версии CARS Installer.
И откройте файл «.env» в текстовом редакторе:
nano .env
И заполните значения для параметров DOWNLOAD_USER
и DOWNLOAD_PASSWORD
.
Запросите логин и пароль для данных параметров у сотрудника VisionLabs.
Примените изменения и сохраните файл «.env».
Остальные параметры файла окружения «.env» представлены в Приложении 2.
Запуск установки Ansible#
После заполнения данных, запустите установку Ansible.
Оставаясь в корне инсталлятора (см. предыдущий пункт), запустите скрипт установки Ansible:
./ansible_download_zip.sh
Запуск установки LUNA CARS через Ansible#
Зайдите в директорию /ansible
:
cd ansible
Выполните команду на запуск процедуры установки CARS Analytics и CARS Stream:
ansible-playbook -i hosts-single install_analytics.yml install_stream.yml install_api.yml
Замените
hosts-single
наhosts
при установке на множество серверов.В случае появления ошибки о недоступности репозиториев, необходимо перезапустить установку.
Запуск системы#
Для входа в веб-интерфейс необходимо открыть в браузере следующую ссылку:
http://<IP_address>:8080
Для авторизации в CARS Analytics от лица администратора используйте следующие данные:
- Логин – admin@test.ru;
- Пароль – test_admin.