История страницы
Предупреждение |
---|
Если у вас версия 21.7 или раньше Обновляйте справочники только последовательно, по одному за раз. Никогда не запускайте одновременно индексацию двух и более справочников. В версиях 21.8+ можно запускать обновление одновременно — «Подсказки» все равно будут индексировать справочники последовательно. |
Утилита обновления (апдейтер) сама скачивает и отдаёт «Подсказкам», «Фактору» и «Единому клиенту» новые версии справочников. Вам остаётся только настроить работу по расписанию.toc
Утилита работает на Linux и требует наличия Python 2.7 или Python 3.5+. Скорее всего, в вашем дистрибутиве он есть, проверьте:
Без форматирования |
---|
$ python --version
Python 2.7.15 |
Архив с утилитой (последняя версия): https://fs.hflabs.ru/sgt-flight/updater/updater-20.2.zip
Установка (Python 2):
Без форматирования |
---|
unzip updater-20.2.zip -d /opt/updater
cd /opt/updater
pip install virtualenv
python -m virtualenv env
env/bin/pip install -r requirements.txt |
Установка (Python 3):
Без форматирования |
---|
unzip updater-20.2.zip -d /opt/updater
cd /opt/updater
python -m venv env
env/bin/pip install -r requirements.txt |
...
Для работы утилите надо знать базовый путь к справочникам, а также пользователя, под которым они работают. Настройки по умолчанию — в файле updater.env. Лучше всего их и использовать.
...
Файл подключается командой «.»:
Без форматирования |
---|
. updater.env |
Если вы хотите поменять настройки по умолчанию, не меняйте файл updater.env — он будет затёрт при очередном обновлении. Вместо этого создайте собственный файл с настройками и подключайте его после updater.env:
Без форматирования |
---|
. updater.env && . custom.env && env/bin/fab название_команды название_справочника |
В custom.env укажите только те настройки, которые меняются по сравнению с умолчательными.
...
title | Описание настроек в updater.env |
---|
...
Блок кода | ||||
---|---|---|---|---|
| ||||
# Путь к каталогу user_lib Фактора, включая сам user_lib
export FACTOR_DICTIONARY_HOME="..."
# Имя пользователя, под которым работает Фактор
export FACTOR_USERNAME="..."
# Версия Фактора
export FACTOR_BUILD="..."
# Путь к каталогу справочников Подсказок
export SUGGESTIONS_DICTIONARY_HOME="..."
# Имя пользователя, под которым работают Подсказки
export SUGGESTIONS_USERNAME="..."
# Порт, на котором работает API Подсказок
export SUGGESTIONS_API_PORT="..."
# Путь к каталогу справочников Единого клиента
export CDI_DICTIONARY_HOME="..."
# Имя пользователя, под которым работает Единый клиент
export CDI_USERNAME="..."
# Имя пользователя API Единого клиента
export CDI_API_USERNAME="..."
# Пароль пользователя API Единого клиента
export CDI_API_PASSWORD="..."
# Порт, на котором работает API Единого клиента
export CDI_API_PORT="..." |
Утилиту можно запускать с самого сервера приложения, либо с любой другой машины, с которой есть доступ по SSH к серверу приложения.
Запуск с сервера приложения
Синтаксис следующий:
Без форматирования |
---|
env/bin/fab название_команды название_справочника |
Запуск с другой машины
В этом варианте утилита использует настройки ~/.ssh/config для подключения к серверу приложения. Например:
Блок кода | ||||
---|---|---|---|---|
| ||||
Host 10.0.1.34
User root
IdentityFile ~/.ssh/suggestions_rsa |
Для пользователя, под которым происходит подключение, должен быть настроен paswordless sudo.
Раскрыть | ||||
---|---|---|---|---|
| ||||
Допустим, апдейтер подключается к серверу приложения под пользователем valera. Тогда для него на сервере приложения следует создать приватный файл:
И прописать в нём:
Указав вместо «IP_АДРЕС» ip-адрес машины с апдейтером. |
Авторизацию рекомендуем настроить по сертификату. В противном случае придётся каждый раз вводить пароль, и настроить автоматический запуск утилиты не получится.
Синтаксис запуска следующий:
Без форматирования |
---|
env/bin/fab -H IP_адрес_сервера название_команды название_справочника |
Если вы всё-таки выберете авторизацию по паролю, укажите дополнительный ключ:
Без форматирования |
---|
env/bin/fab -H IP_адрес_сервера --prompt-for-login-password название_команды название_справочника |
Работа через прокси-сервер
Чтобы апдейтер работал через прокси-сервер, требуется прописать его настройки в двух местах. Во-первых, в updater.env:
Блок кода | ||||
---|---|---|---|---|
| ||||
export HTTP_PROXY="http://proxy_server_ip:port"
export HTTPS_PROXY="https://proxy_server_ip:port" |
Во-вторых, в ~/.wgetrc для пользователя, под которым запускается апдейтер:
Блок кода | ||||
---|---|---|---|---|
| ||||
use_proxy=yes
http_proxy=http://proxy_server_ip:port
https_proxy=https://proxy_server_ip:port |
...
Утилита умеет:
- Скачать справочник на сервер приложения — команда download
- Скачать справочник на локальную машину — команда download-to
- Скопировать справочник с локальной машины на сервер приложения — команда scp
- Обновить предварительно скачанный справочник на сервере приложения — команда update
Поддерживаются справочники «Фактора»:
...
Справочники «Подсказок»:
...
И справочники «Единого клиента»:
...
Скачивание справочников
Если на сервере приложения разрешён доступ к репозиторию HFLabs, для скачивания справочника достаточно команды download:
...
...
Если же на сервере приложения внешний доступ полностью закрыт, воспользуйтесь командами download-to и scp:
Без форматирования |
---|
# Команды выполняются на внешней машине
# 10.0.1.34 — адрес сервера приложения
# 1) скачать справочник локально в каталог /tmp/dictionaries/address
env/bin/fab download-to suggestions_address /tmp/dictionaries/address
# 2) затем скопировать скачанный справочник на сервер приложения
env/bin/fab -H 10.0.1.34 scp suggestions_address /tmp/dictionaries/address |
Обновление справочников
Обновление справочника всегда выполняется командой update, предварительно справочник должен быть скопирован на сервер приложения.
Если утилита выполняется на сервере приложения:
Без форматирования |
---|
# Команды выполняются на сервере приложения
# - обновить справочники Подсказок
env/bin/fab update suggestions_geonames
env/bin/fab update suggestions_address
env/bin/fab update suggestions_geo
env/bin/fab update suggestions_bank
env/bin/fab update suggestions_ip
env/bin/fab update suggestions_partyext
env/bin/fab update suggestions_party
env/bin/fab update suggestions_email
env/bin/fab update suggestions_fio
# - обновить справочники Фактора
env/bin/fab update factor_geocode
env/bin/fab update factor_fias
env/bin/fab update factor_flatarea
env/bin/fab update factor_flatprice
env/bin/fab update factor_invpassport
env/bin/fab update factor_transphone
# - обновить справочники Единого клиента
env/bin/fab update cdi_egr |
Если утилита выполняется с внешней машины:
Без форматирования |
---|
# Команды выполняются на внешней машине
# 10.0.1.34 — адрес сервера приложения
# - обновить справочники Подсказок
env/bin/fab -H 10.0.1.34 update suggestions_address
...
# - обновить справочники Фактора
env/bin/fab -H 10.0.1.34 update factor_geocode
...
# - обновить справочники Единого клиента
env/bin/fab -H 10.0.1.34 update cdi_egr |
Проверка версии
Чтобы проверить версию утилиты, выполните команду version:
Без форматирования |
---|
env/bin/fab version |
Работа по расписанию
Чтобы регулярно скачивать и обновлять справочники, добавьте задачи в крон.
Пример для запуска с сервера приложения, если полный путь к утилите /opt/updater:
Без форматирования |
---|
00 21 * * 6 cd /opt/updater && . /opt/updater/updater.env && /opt/updater/download-dictionaries.sh
00 01 * * 0 cd /opt/updater && . /opt/updater/updater.env && /opt/updater/env/bin/fab update suggestions_bank
05 01 * * 0 cd /opt/updater && . /opt/updater/updater.env && /opt/updater/env/bin/fab update suggestions_ip
10 01 * * 0 cd /opt/updater && . /opt/updater/updater.env && /opt/updater/env/bin/fab update suggestions_geonames update suggestions_address
00 03 * * 0 cd /opt/updater && . /opt/updater/updater.env && /opt/updater/env/bin/fab update suggestions_partyext update suggestions_party
00 04 * * 0 cd /opt/updater && . /opt/updater/updater.env && /opt/updater/env/bin/fab update factor_geocode
30 04 * * 0 cd /opt/updater && . /opt/updater/updater.env && /opt/updater/env/bin/fab update factor_fias |
Блок кода | ||||
---|---|---|---|---|
| ||||
/opt/updater/env/bin/fab download suggestions_bank
/opt/updater/env/bin/fab download suggestions_ip
/opt/updater/env/bin/fab download suggestions_address
/opt/updater/env/bin/fab download suggestions_geonames
/opt/updater/env/bin/fab download suggestions_party
/opt/updater/env/bin/fab download suggestions_partyext
/opt/updater/env/bin/fab download suggestions_email
/opt/updater/env/bin/fab download suggestions_fio
/opt/updater/env/bin/fab download factor_geocode
/opt/updater/env/bin/fab download factor_fias |
Пример для запуска с внешней машины, если полный путь к утилите /opt/updater, а 10.0.1.34 — адрес сервера приложения:
Без форматирования |
---|
00 21 * * 6 cd /opt/updater && . /opt/updater/updater.env && /opt/updater/download-dictionaries.sh
00 23 * * 6 cd /opt/updater && . /opt/updater/updater.env && /opt/updater/copy-dictionaries.sh
00 01 * * 0 cd /opt/updater && . /opt/updater/updater.env && /opt/updater/env/bin/fab -H 10.0.1.34 update suggestions_bank
05 01 * * 0 cd /opt/updater && . /opt/updater/updater.env && /opt/updater/env/bin/fab -H 10.0.1.34 update suggestions_ip
10 01 * * 0 cd /opt/updater && . /opt/updater/updater.env && /opt/updater/env/bin/fab -H 10.0.1.34 update suggestions_geonames update suggestions_address
55 02 * * 0 cd /opt/updater && . /opt/updater/updater.env && /opt/updater/env/bin/fab -H 10.0.1.34 update suggestions_geo
00 03 * * 0 cd /opt/updater && . /opt/updater/updater.env && /opt/updater/env/bin/fab -H 10.0.1.34 update suggestions_partyext update suggestions_party
00 04 * * 0 cd /opt/updater && . /opt/updater/updater.env && /opt/updater/env/bin/fab -H 10.0.1.34 update factor_geocode
30 04 * * 0 cd /opt/updater && . /opt/updater/updater.env && /opt/updater/env/bin/fab -H 10.0.1.34 update factor_fias |
Блок кода | ||||
---|---|---|---|---|
| ||||
/opt/updater/env/bin/fab download-to suggestions_bank /tmp/dictionaries/suggestions_bank
/opt/updater/env/bin/fab download-to suggestions_ip /tmp/dictionaries/suggestions_ip
/opt/updater/env/bin/fab download-to suggestions_address /tmp/dictionaries/suggestions_address
/opt/updater/env/bin/fab download-to suggestions_geonames /tmp/dictionaries/suggestions_geonames
/opt/updater/env/bin/fab download-to suggestions_party /tmp/dictionaries/suggestions_party
/opt/updater/env/bin/fab download-to suggestions_partyext /tmp/dictionaries/suggestions_partyext
/opt/updater/env/bin/fab download-to suggestions_email /tmp/dictionaries/suggestions_email
/opt/updater/env/bin/fab download-to suggestions_fio /tmp/dictionaries/suggestions_fio
/opt/updater/env/bin/fab download-to factor_geocode /tmp/dictionaries/factor_geocode
/opt/updater/env/bin/fab download-to factor_fias /tmp/dictionaries/factor_fias |
...
language | bash |
---|---|
title | /opt/updater/copy-dictionaries.sh |
...
Особенности обновления справочника ЕГРЮЛ в «Едином клиенте»
Путь к каталогу справочника на сервере приложения ($CDI_DICTIONARY_HOME/egr) должен быть заранее прописан в настройках задачи EgrDictionaryImport.
...