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

Подготовка к обновлению#

Убедитесь в том, что вы являетесь root-пользователем перед тем, как начать обновление!

Перед обновлением LUNA Index Module необходимо выполнить следующие действия:

Перенос хранилища индексов#

По умолчанию хранилище индексов располагается в директории "/var/lib/luna/lim_storage" без привязки к версии LIM. Необходимо переместить хранилище индексов в директорию "/var/lib/luna" если в предыдущих версиях директория располагалась в ином месте.

Удаление символической ссылки#

Удалите символическую ссылку в директорию предыдущей версии с помощью следующей команды:

rm -f /var/lib/luna/lim-current

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

Дистрибутив представляет собой архив lim_v.5.51.4, где v.5.51.4 это числовой идентификатор, обозначающий версию LIM.

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

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

Переместите дистрибутив в директорию /var/lib/luna/.

mv /root/lim_v.5.51.4.zip /var/lib/luna/

Установите приложение для распаковки архива при необходимости

yum install -y unzip

Откройте папку с дистрибутивом

cd /var/lib/luna/

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

unzip lim_v.5.51.4.zip

Создание символической ссылки#

Создайте символическую ссылку. Она показывает, что актуальная версия файла дистрибутива используется для запуска LIM.

ln -s lim_v.5.51.4 lim-current

SELinux и Firewall#

SELinux и Firewall необходимо настроить так, чтобы они не блокировали сервисы LUNA PLATFORM.

Конфигурация SELinux и Firewall не описываются в данном руководстве.

Если SELinux и Firewall не настроены, дальнейшая установка невозможна.

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

При запуске контейнеров необходимо указать ссылку на образ, необходимый для запуска контейнера. Этот образ загружается из VisionLabs registry. Перед этим необходима авторизация.

Логин и пароль можно запросить у представителя VisionLabs.

Введите логин .

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

В команде docker login можно вводить логин и пароль одновременно, однако это не гарантирует безопасность, т.к. пароль можно будет увидеть в истории команд.

Миграция настроек LIM#

Выполните следующую команду для миграции настроек LIM в сервисе LUNA Configurator.

docker run \
-v /etc/localtime:/etc/localtime:ro \
--rm \
--entrypoint='' \
--network=host \
dockerhub.visionlabs.ru/luna/lim-configs:v.0.3.3 python3 -m configs.migrate head --config_db_url postgres://luna:luna@127.0.0.1:5432/luna_configurator

--config_db_url postgres://luna:luna@127.0.0.1:5432/luna_configurator - флаг указания адреса БД luna_configurator

Обновление настроек в Configurator#

Далее необходимо включить использование сервиса Python Matcher Proxy и добавить плагин сравнения в список плагинов, используемых сервисом Python Matcher Proxy.

Скопируйте файл с необходимыми настройками в контейнер Configurator:

docker cp /var/lib/luna/lim-current/example-docker/configs/lim_settings.json luna-configurator:/srv/lim_settings.json

Обновите настройки в сервисе Configurator:

docker exec -it luna-configurator python3 ./base_scripts/db_create.py --dump-file /srv/lim_settings.json

В результате в сервисе Configurator будут обновлены следующие настройки:

LUNA_MATCHER_PROXY_ACTIVE_PLUGINS = ["indexed_matcher"]
ADDITIONAL_SERVICES_USAGE = "luna_matcher_proxy":true

Удаление старых контейнеров#

Перед запуском контейнеров текущей минорной версии необходимо остановить все контейнеры, относящиеся к предыдущей минорной версии LIM.

Для удаления контейнера используйте следующую команду:

docker container rm -f [container_name]

где [container_name] это имя контейнера сервиса docker или ID.

Например, для удаления контейнеров LP используйте следующую команду:

docker container rm -f lim-indexer lim-manager lim-matcher luna-python-matcher-proxy

Чтобы посмотреть имена контейнеров или их ID, используйте следующую команду:

docker ps -a

Также рекомендуется удалить старые образы контейнеров для освобождения места. Можно использовать следующую команду для удаления всех неиспользуемых образов.

Если на сервере достаточно места, рекомендуется выполнить это действие только после успешного запуска новой версии LIM.

Данная команда удаляет все неиспользуемые образы, а не только образы, относящиеся к LIM.

docker image prune -a -f

Дополнить построенные индексы информацией о версии БШ#

Примечание. Выполняйте данные действия только если обновляетесь с версии 5.32.0.

В версии LIM 5.34.0 добавлен учет версий биометрических шаблонов индексов, задаваемых в настройке "DEFAULT_FACE_DESCRIPTOR_VERSION" сервиса Index Manager.

После запуска сервиса Index Manager, он автоматически начнет перестраивание всех индексов, в которых отсутствует информация о биометрических шаблонах, т.е. всех, созданных в версии LIM 5.32.0. Перестройка индекса может занять длительное время, зависящее от количества лиц в списках.

Для того, чтобы не выполнять длительный процесс перестроения индекса, нужно добавить поле "descriptor_version" с соответствующей версией биометрического шаблона в файлы "meta.json" всех созданных ранее индексов перед запуском сервиса Index Manager.