Обновление FAM Server Avanpost FAM/MFA+


Общая часть

Не следует обновлять FAM самостоятельно, если установлена кастомизированная версия продукта. Для обновления такой версии следует обратиться в техническую поддержку продукта. Перед обновлением обязательно сделать бекап базы данных, файла key.dat и конфигурационного файла или всего сервера, если это удобнее. 

Информация

encryptionKey = ‘key.dat’ – критически важный файл. Отвечает за расшифровку подключения к БД. Если переносится база, то переносится и сам файл. Если файл удалён, то придётся создать новую базу.

Важно

При обновлении важно понимать, что версия используемой базы данных должна равняться версии исполняемого файла FAM и папки public (в ней находятся шаблоны конкретной версии, которые также изменяются). 

Если базу привели к состоянию на момент существования до обновления, нужно будет привести и исполняемые файлы к четкому соответствию.

Пример:

  • Если нужно установить версию продукта 1.8: восстановить исполняемые файлы на версию, существующую в бекапе базы данных, затем снова восстановить базу данных для версии 1.8. 
  • Если нужно установить версию продукта 1.10: необходимо восстановить базу данных к версии 1.8 и обновиться стандартным методом (при помощи команд migratedb и init). Только после этого следует запускать службу сервера.

Важно

Если используется конфигурация сети с установкой двух серверов (отказоустойчивый кластер), то перед выполнением следует остановить службу на обоих серверах. Затем на одном выполнить инструкцию целиком последовательно, а на втором обновить только файлы, не выполняя миграцию БД (шаги 5 и 6 данной инструкции). Затем запустить службу на обоих серверах.

Обновление версий

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

  1. Скачать новую версию FAM Server по ссылке: Sonatype Nexus Repository.
  2. Остановить службу idp следующей командой:
    sudo systemctl stop idp
  3. Перед обновлением удалите папку public (/opt/idp/public), так как при распаковки архива только заменяются существующие файлы и добавляются новые, не используемые файлы будут оставаться в каталоге. Если у вас были внесены изменения в шаблоны, то не удаляйте данную папку. Удаление папки производится следующей командой:
    sudo rm -r /opt/idp/public
  4. Скопировать с заменой файлы из скачанного архива в /opt/idp/ (вместо avanpost_fam_server-* следует подставить имя архива):
    tar -C /opt/idp -xvzf /path_to_tar_file/avanpost_fam_server-*.linux.tar.gz
  5. Находясь в каталоге /opt/idp/ , следует выполнить миграцию БД командой:
    ./fam_linux_amd64 -migratedb postgres

    По завершении миграции пользователю будет выдано сообщение "Successfully migrate database". Если данное сообщение сообщение выдано, значит миграция прошла успешно вне зависимости от выданных до данного сообщения ошибок и зависящих от настроек FAM Server.

  6. Выполнить команду инициализации (после сообщения об успешном завершении миграции):
    ./fam_linux_amd64 -init

    По завершении инициализации пользователю будет выдано сообщение "lk-client application was successfully created". Если данное сообщение сообщение выдано, значит инициализация прошла успешно вне зависимости от выданных до данного сообщения ошибок.

  7. Запустить службу на сервере FAM.
    sudo systemctl start idp

      8. При переходе на новый формат конфигурационного файла FAM с json на toml в файле службы idp.service (стандартный путь /etc/systemd/system/idp.service) также необходимо удалить строку для переменной Environment (можно указать новое расширение файла или удалить строку целиком).

Для правильной работы MFA+FAM необходимо обновить и FAM Mobile Services. Версия FAM Mobile Services должна быть идентична версии FAM Server. После обновления версии также нужно включить параметр backgroundTasks = true, для выполнения корректной синхронизации LDAP и работы с мобильными сервисами (фактор Avanpost Authenticator).

Информация

В случае возникновения ошибок с Base Url, в /opt/idp/config.toml замените base_url на baseUrl.

Приложение А. Создание новой БД при проблемах с файлом key.dat

При удалении или изменении ключа шифрования файла key.dat следует:

  1. Зайти в интерактивный терминал PostgreSQL.
    sudo -u postgres psql
  2. Удалить старую базу данных.
    DROP DATABASE idp
  3. Создать новую базу данных.
    CREATE DATABASE idp OWNER=avanpost ENCODING=utf8;
  4. Выйти из терминала.
  5. Создать новый ключ шифрования.
    ./fam_linux_amd64 -generatekey
  6. Произвести миграцию базы данных.
    ./fam_linux_amd64 -migratedb postgres
  7. Инициализировать приложение.
    ./fam_linux_amd64 -init

Обсуждение