Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.
Предупреждение

Для работы нового «Апдейтера» на операционных системах семейства RHEL нужно установить версию пакета unzip-6.0-24 или выше.

Установка и настройка

  1. Сохраните копию старой утилиты, например в /tmp, после чего очистите корневой каталог утилиты

    Блок кода
    languagebash
    cp -r /opt/updater /tmp
    rm -R  /opt/updater/*
  2. Если ранее пользователь утилиты был не updater, создайте отдельного пользователя на всех серверах приложений, для которых требуется обновление справочника и поменяйте права на директории  самой утилиты:

    Блок кода
    languagebash
    useradd updater
    chown -R updater:updater /opt/updater
  3. Для директорий справочников приложений настройте пользователей выдайте права 777 и SGID бит, пути к справочникам можно посмотреть в файлах конфигурации старой утилиты (/tmp/updater/updater.env или /tmp/updater/custom.env):

    Блок кода
    languagebash
    chown -R updater:suggestions /opt/suggestions/dictionaries
    chmod -R 2777 /opt/suggestions/dictionaries
    
    
    chown -R updater:factor /opt/factor/dictionaries
    chmod -R 2777 /opt/factor/dictionaries
    
    chown -R updater:cdi /opt/cdi/dictionaries
    chmod -R 2777 /opt/cdi/dictionaries
  4. На сервере Апдейтера также создайте корневые директории справочников для нужных продуктов и выдайте права:

    Блок кода
    languagebash
    # Подсказки
    mkdir -p /opt/suggestions/dictionaries
    chown -R updater /opt/suggestions/dictionaries
    chmod -R 2777 /opt/suggestions/dictionaries
    
    
    # Фактор
    mkdir -p /opt/factor/dictionaries
    chown -R updater /opt/factor/dictionaries
    chmod -R 2777 /opt/factor/dictionaries
    
    # Единый клиент
    mkdir -p /opt/cdi/dictionaries
    chown -R updater /opt/cdi/dictionaries
    chmod -R 2777 /opt/cdi/dictionaries


  1. Скачайте два исполняемых файла утилиты (updater и clear_dict) с FS Скачайте исполняемый файл утилиты updater и юнит-файл updater.service с https://fs.hflabs.ru/%ваш_спейс%/updater_new/ — если такой папки в вашем спейсе ещё нет, обратитесь в поддержку/.
  2. Переместите файл updater Переместите их в директорию «Апдейтера» и выдайте права на выполнение

    Блок кода
    languagebash
    # Перемещаем исполняемые файлы (если загрузили их директорию /tmp)
    mv /tmp/{updater, clear_dict} /opt/updater/
    
    # Устанавливаем&& владельца
    chown updater: /opt/updater/updater
    chown updater: /opt/updater/clear_dict
    
    # Выдаем права
    && chmod 755 /opt/updater/updater
    chmod 755 /opt/updater/clear_dict
  3. Скопируйте файл updater.env из старой версии утилиты (если использовался custom.env, то берем его)

    Блок кода
    languagebash
    cp /tmp/updater.env /opt/updater
  4. Оставьте в нём только строки с переменными из списка ниже:

    Раскрыть
    Блок кода
    languagebash
    FACTOR_DICTIONARY_HOME
    FACTOR_USERNAME
    
    SUGGESTIONS_DICTIONARY_HOME
    SUGGESTIONS_USERNAME
    SUGGESTIONS_API_PORT
    
    CDI_DICTIONARY_HOME
    CDI_USERNAME
    CDI_API_USERNAME
    CDI_API_PASSWORD
    CDI_API_PORT
  5. Переместите юнит-файл updater.service в директорию с юнитами и настройте автозапуск для службы:

    Укажите значения для недостающих обязательных настроек:

    Раскрыть
    Блок кода
    languagebash
    titleupdater.env
    # Логин и пароль для авторизации в Artifactory (если у вас их нет, обратитесь в поддержку)"
    ARTIFACTORY_LOGIN="..."
    ARTIFACTORY_PASSWORD="..."
    
    
    # Использовать ли команду chown для изменения прав (по умолчанию false)
    WITH_ROOT="false"
    
    
    # Хост, на котором работает API Фактора (если отличается от localhost)
    FACTOR_API_HOST="..."
    
    # Порт, на котором работает API Фактора 
    FACTOR_API_PORT="..."
    
    # Имя заказчика в адресе к Фактору http://host:18080/factor-service-<имя заказчика>
    FACTOR_API_TAG="..."
    
    
    # Хост, на котором работает API Подсказок (если отличается от localhost)
    SUGGESTIONS_API_HOST="..."
    
    # Пароль пользователя API Подсказок (если включена авторизация в админку)
    SUGGESTIONS_API_PASSWORD="..."
    
    
    # Хост, на котором работает API Единого клиента (если отличается от localhost)
    CDI_API_HOST="..."
  6. Если необходимо, укажите значения для дополнительных настроек:

    Раскрыть
    Блок кода
    languagebash
    titleupdater.env
    # Путь к Artifactory по умолчанию:
    # ARTIFACTORY_HOST="https://maven.hflabs.ru/artifactory/repo"
    # Если есть локальное зеркало Artifactory, достаточно раскрыть эту переменную,
    # чтобы Апдейтер переключился с maven.hflabs.ru на локальное зеркало, например:
    # ARTIFACTORY_HOST="http://maven.mycorp.ru/artifactory/hflabs-maven-remote"  
    
    # Имя пользователя, под которым работает Апдейтер (используется для очистки старых справочников на удаленном сервере)
    UPDATER_USERNAME="..." 
    
    # Управление проверкой сертификата Artifactory.
    # По умолчанию значение true.
    CHECK_CERTIFICATE = "..."
    
    # Ограничивает скорость скачивания словарей (указывается в мегабитах в секунду).
    # Значение по умолчанию - 0 (без ограничений).
    DOWNLOAD_RATE_LIMIT=0
    
    # Настройки подключения к прокси-серверу в формате 'http://user:password@ipaddress:port'
    HTTP_PROXY='http://...'
    
    
    # Уровень логирования - ERROR, WARN, INFO, DEBUG (по умолчанию INFO)
    LOGGING_LEVEL="INFO"
    
    # Включение HTTPS протокола отдельно для каждого из продуктов
    CDI_HTTPS="true"
    FACTOR_HTTPS="true"
    SUGGESTIONS_HTTPS="true"
  7. Необходимо очистить переменные окружения от старой версии, т.к. они имеют больший приоритет, чем настройки конфига. 

    Раскрыть
    titleunset_env.sh
    Блок кода
    languagebash
    unset ARTIFACTORY_PATH
    unset FACTOR_DICTIONARY_HOME
    unset FACTOR_USERNAME
    unset FACTOR_BUILD
    unset SUGGESTIONS_DICTIONARY_HOME
    unset SUGGESTIONS_USERNAME
    unset SUGGESTIONS_API_PORT
    unset CDI_DICTIONARY_HOME
    unset CDI_USERNAME
    unset CDI_API_USERNAME
    unset CDI_API_PASSWORD
    unset CDI_API_PORT
  8. mv /tmp/updater.service /etc/systemd/system/ && systemctl daemon-reload && systemctl enable updater.service && systemctl start updater.service
  9. Настройте файл конфигурации updater.yaml, перенеся в него настройки из старого файла  updater.env

  10. Оставьте в нём только строки с переменными из списка ниже:

    Если используются внешние справочники Подсказок, то они будут работать по умолчанию, но с одним условием — перед названием обязательно указывается тэг продукта, например: suggestions_car_brand

  11. Если у вас была настроена загрузка справочников по расписанию, то пришлите, пожалуйста, все ваши .sh (или .cron) скрипты нам на почту. Мы конвертируем их в формат нового «Апдейтера» запросы для добавления задач новом «Апдейтере» и вернем их вам обратно.

    Замените старые скрипты на конвертированные из пункта выше, после чего из cron-расписания на сервере (редактируется командой «crontab -e») удалите часть с "&& . /opt/updater/updater.env".

    Раскрыть
    titleПример

    Было:

    Без форматирования
    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/update-dictionaries.sh

    Стало:

    Без форматирования00 21 * * 6 cd /opt/updater && /opt/updater/download-dictionaries.sh 00 01 * * 0 cd /opt/updater && /opt/updater/update-dictionaries.sh
  12. Выполните запросы, сконвертированные из скриптов загрузки справочников по расписанию