Обновление FindFace Security до 4.2¶
Предупреждение
Начиная с версии 4.1, FindFace Security использует новую версию Tarantool. Биометрическая база данных из предыдущих версий FindFace Security (4.0 и более ранних) НЕСОВМЕСТИМА с FindFace Security 4.2. При обновлении продукта до 4.2 обязательно используйте функцию резервного копирования / восстановления (см. полный алгоритм ниже).
Для обновления FindFace Security с любой предыдущей версии до 4.2 выполните следующие действия:
- Откройте файл конфигурации - findface-security. Сохраните для последующего использования значения следующих параметров:- EXTERNAL_ADDRESS,- SECRET_KEY,- VIDEO_DETECTOR_TOKEN,- ROUTER_URL.- sudo vi /etc/ffsecurity/config.py EXTERNAL_ADDRESS = "http://172.20.77.58" ... # use pwgen -sncy 50 1|tr "'" "." to generate your own unique key SECRET_KEY = 'c8b533847bbf7142102de1349d33a1f6' FFSECURITY = { 'VIDEO_DETECTOR_TOKEN': '381b0f4a20495227d04185ab02f5085f', ... 'ROUTER_URL': 'http://172.20.77.58', ... } 
- Остановите сервис - findface-security.- sudo systemctl stop findface-security* 
- Создайте резервную копию биометрической базы данных на основе Tarantool в любой выбранной директории, например, - /tmp/dump.- Совет - Подробнее см. Резервное копирование и восстановление хранилищ данных. - mkdir -p /tmp/dump cd /tmp/dump sudo findface-storage-api-dump -config /etc/findface-sf-api.ini 
- Установите apt-репозиторий с новой версией FindFace Security, используя консольный инсталлятор согласно инструкции в этом разделе. 
- Установите пакет - pgbouncerследующим образом:- sudo apt update sudo apt install -y pgbouncer 
- Предоставьте надежный пароль пользователю - ntech(- 9T3g1nXy9yx3y8MIGm9fbef3dia8UTc3в примере ниже). Внесите учетные данные в список пользователей- pgbouncer.- echo '"ntech" "9T3g1nXy9yx3y8MIGm9fbef3dia8UTc3"' | sudo tee -a /etc/pgbouncer/userlist.txt 
- Настройте - pgbouncer. Откройте файл- /etc/pgbouncer/pgbouncer.iniи добавьте базу данных- ffsecurityв раздел- databases. Настройте другие параметры, как показано в примере ниже.- sudo vi /etc/pgbouncer/pgbouncer.ini [databases] ffsecurity = dbname=ffsecurity host=localhost port=5432 user=ntech ... auth_type = plain pool_mode = transaction max_client_conn = 16384 syslog = 1 listen_port = 5439 
- Скопируйте пароль пользователя - ntech(- 9T3g1nXy9yx3y8MIGm9fbef3dia8UTc3в примере). В PostgreSQL установите скопированный пароль для роли- ntech. Откройте интерактивный терминал PostgreSQL. Появится строка- postgres=#. После знака- #введите следующую команду:- ALTER ROLE ntech PASSWORD ‘<скопированный пароль>’.- sudo -u postgres psql postgres=# ALTER ROLE ntech PASSWORD '9T3g1nXy9yx3y8MIGm9fbef3dia8UTc3'; 
- Через интерактивный терминал PostgreSQL создайте базу данных - ffcounterв PostgreSQL.- postgres=# CREATE DATABASE ffcounter WITH OWNER ntech ENCODING 'UTF-8' LC_COLLATE='C.UTF-8' LC_CTYPE='C.UTF-8' TEMPLATE template0; 
- Создайте и настройте - pgbouncer.service.- sudo touch /etc/systemd/system/pgbouncer.service sudo vim /etc/systemd/system/pgbouncer.service - Вставьте следующий код: - [Unit] Description=Pgbouncer service After=postgresql.service Before=findface-security.service [Service] User=postgres Group=postgres ExecStart=/usr/sbin/pgbouncer "/etc/pgbouncer/pgbouncer.ini" [Install] WantedBy=multi-user.target 
- Добавьте - pgbouncer.serviceв автозагрузку и перезапустите сервис:- sudo systemctl enable pgbouncer.service sudo systemctl restart pgbouncer.service 
- Установите из репозитория новые сервисы FindFace Security в соответствии с текущей архитектурной схемой. - CPU-версия: - sudo apt update sudo apt install ffsecurity ffsecurity-ui findface-extraction-api findface-ntls findface-sf-api findface-tarantool-server findface-upload findface-video-manager findface-video-worker-cpu findface-counter - GPU-версия: - sudo apt update sudo apt install ffsecurity ffsecurity-ui findface-extraction-api-gpu findface-ntls findface-sf-api findface-tarantool-server findface-upload findface-video-manager findface-video-worker-gpu findface-gpudetector-data findface-counter - Важно - В какой-то момент вам будет предложено выбрать, какую версию конфигурационного файла - findface-securityиспользовать. Выберите вариант- Install the packages maintainer’s version.
- Добавьте сервис - findface-counterв автозагрузку.- sudo systemctl enable findface-counter 
- Откройте файл конфигурации - findface-securityи вставьте в него сохраненные значения параметров- EXTERNAL_ADDRESS,- SECRET_KEY,- VIDEO_DETECTOR_TOKENи- ROUTER_URL. Заполните раздел- DATABASESпо аналогии:- ’PORT’: 5439, ‘USER’: ‘ntech’, ‘PASSWORD’: ‘9T3g1nXy9yx3y8MIGm9fbef3dia8UTc’(пароль из- /etc/pgbouncer/userlist.txt).- sudo vi /etc/ffsecurity/config.py EXTERNAL_ADDRESS = "http://172.20.77.58" ... DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'DISABLE_SERVER_SIDE_CURSORS': True, 'NAME': 'ffsecurity', 'PORT': 5439, 'USER': 'ntech', 'PASSWORD': '9T3g1nXy9yx3y8MIGm9fbef3dia8UTc3' } } ... # use pwgen -sncy 50 1|tr "'" "." to generate your own unique key SECRET_KEY = 'c8b533847bbf7142102de1349d33a1f6' FFSECURITY = { 'VIDEO_DETECTOR_TOKEN': '381b0f4a20495227d04185ab02f5085f', ... 'ROUTER_URL': 'http://172.20.77.58', ... } 
- Измените структуру базы данных Tarantool с помощью файла - tnt_schema.luaиз новой версии.- sudo findface-security make_tnt_schema | sudo tee /etc/ffsecurity/tnt_schema.lua 
- Остановите шарды - findface-tarantool-server. Удалите базу данных Tarantool (базу по умолчанию или шарды).- sudo systemctl stop 'tarantool@*' sudo rm -R /opt/ntech/var/lib/tarantool/shard-00*/index/* sudo rm -R /opt/ntech/var/lib/tarantool/shard-00*/snapshots/* sudo rm -R /opt/ntech/var/lib/tarantool/shard-00*/xlogs/* 
- Перезапустите шарды - findface-tarantool-server.- TNT=$(ls /etc/tarantool/instances.enabled/ | wc -l) for i in $(seq 1 $TNT); do sudo systemctl start tarantool@shard-00$i.service ; done 
- Перезагрузите сервисы. - sudo systemctl restart findface-security.service sudo systemctl restart findface-ntls findface-extraction-api findface-video-worker* findface-video-manager findface-sf-api findface-counter 
- Восстановите базу данных Tarantool из резервной копии. - cd /tmp/dump for x in *.json; do sudo findface-storage-api-restore -config /etc/findface-sf-api.ini < "$x"; done 
- Перенесите схему базы данных из FindFace Security в PostgreSQL, заново создайте группы пользователей с предустановленными правами и первого пользователя с правами администратора. - sudo findface-security migrate sudo findface-security create_groups sudo findface-security create_default_user 
- Перезапустите PostgreSQL. - На Ubuntu 16.04: - sudo systemctl restart postgresql@9.5-main.service - На Ubuntu 18.04: - sudo systemctl restart postgresql@10-main.service