Подготовка к обновлению серверных компонентов
Автор Kirill Osipov, Last modified by Kirill Osipov на 22 апреля 2024 01:15 PM

Подготовка к обновлению состоит из нескольких шагов

Если в инфраструктуре используется несколько серверов АМ с балансировщиком, первым делом выводим обновляемый сервер из балансировки;
Рассмотрим на примере HAProxy:
Имеем 2 сервера Indeed с именами AM1 и AM2, которые находятся в балансировке. Для обновления сервера АМ2, выводим его из балансировки.
Сервер АМ1 в свою очередь продолжит работу, все запросы пойдут на него и для пользователей это будет прозрачно.

Для минимизации каких-либо проблем, выполнять обновление рекомендуется в период наименьшей активности пользователей.
Также, на время обновления, желательно запретить пользователям регистрировать/изменять/удалять аутентификаторы, т.к. базу данных на АМ2 мы сделаем отдельную, с АМ1 зарегистрированные за это время аутентификаторы не перенесутся!

  1. Выводим один из серверов из балансировки:
    • Подключаемся к балансировщику, получаем права администратора, а затем редактируем конфигурационный файл:
      • sudo su;
      • nano /etc/haproxy/haproxy.cfg;



    • В строке проверки доступности серверов комментируем (#) строку с нужным сервером:
      В приведенном примере имеем 2 бекэнда, соответственно комментируем две строки с сервером АМ2.


      Сохраняем изменения (Ctrl+O, Enter) и выходим из файла (Ctrl + X).

    • Далее перезапускаем службу и выходим из консоли:
      • systemctl restart haproxy;
      • exit;



    • Если у вас несколько серверов балансировки, данную процедуру нужно проделать на каждом из них!

  2. Делаем резервную копию базы данных Core сервера и разворачиваем из неё отдельную БД для обновляемого сервера:
    Рассмотрим на примере SQL:
    • Делаем бекап Core сервера:



    • Затем создаём новую базу данных и восстанавливаем её из полученного только что бекапа:



      Отмечаем опцию "Перезаписать существующую базу данных";
      Убираем опцию "Создать резервную копию заключительного фрагмента журнала до восстановления";



    • Сервисной учетной записи даём права на новую БД:



    • В конфигурационном файле C:\inetpub\wwwroot\am\core\Web.config меняем путь к базе данных:



    • Перезапускаем IIS.

  3. Делаем бекапы конфигурационных файлов вручную или используем инструмент UpdateHelper:

    Ручное сохранение резервных копий:

    • C:\inetpub\wwwroot\ls:



    • C:\inetpub\wwwroot\am\mc:



    • C:\inetpub\wwwroot\am\core:



    • C:\inetpub\wwwroot\am\uc:



    • C:\inetpub\wwwroot\am\idp:

      • В версиии 8.1.4 и ниже, конфигурационный файл находится в idp\Web.config:



      • В версиии 8.1.5 и выше, конфигурационный файл находится в idp\app-settings.json:



    • С версии 8.1.5 лицензии для idp изменились, если вы обновляетесь с версии ниже - нужно перевыписывать лицензии.

  4. Делаем выгрузку реестра:

    • Компьютер\HKEY_LOCAL_MACHINE\SOFTWARE\Indeed-ID:



    • Компьютер\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Indeed-ID:



  5. Делаем бекап конфигурации сервера при помощи "Мастера конфигурации":

    • В мастере проходим все шаги "Далее-далее" до пункта сохранения Резервной копии:



    •  Перед созданием бекапа, шифрование следует отключить:



    • Отмечаем опцию "Сохранить резервную копию параметров конфигурации":




Готово.
Теперь сервер АМ1 останется работать со старой базой данных, а АМ2, который хотим обновлять - с новой БД, восстановленной из бекапа.

В процессе обновления сервера АМ2, сервер АМ1 продолжит работу и на пользователях данный процесс не отразится.


Также, перед самым обновлением, рекомендуется сделать резервные копии:

  • БД логов АМ (если хранилище в БД);
  • БД АК(при наличии);
  • БД Логов АК (при наличии и в случае хранения логов АК в БД).

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

Использование инструмента UpdateHelper

При помощи данной утилиты можно сделать резервные копии конфигурационных файлов и реестра за короткий промежуток времени, а также централизованно удалить все старые компоненты Indeed AM и установить новые.

  • Инструмент расположен в дистрибутиве: Indeed AM <номер версии>\Misc\UpdateHelper\<номер версии>\UpdateHelper.exe, запускать его нужно от имени Администратора:



  • На этапе Backup нужно выбрать папку, куда будут сохранены резервные копии конфигурационных файлов и реестра, а также выбрать конкретные компоненты/модули, бекапы которых нужно сделать (чекбоксом Check All можно сразу выбрать все доступные пункты);
    После нажатия кнопки Create,
    будут сделаны бекапы.



  • На этапе Remove нужно выбрать компоненты, модули и провайдеры, которые требуется удалить, для выбора будут доступны только установленные компоненты (чекбоксом Check All можно сразу выбрать все доступные пункты);
    После нажатия кнопки
    Remove, будут удалены выбранные компоненты. 




  • На этапе Install нужно выбрать директорию с дистрибутивом, а также отметить компоненты, модули и провайдеры, которые требуется установить (автоматически будут выбраны компоненты, удаленные на предыдущем шаге);
    После нажатия кнопки
    Install,
    будут установлены выбранные компоненты.


  • На этапе Restore нужно выбрать директорию с резервными копиями, которые мы сделали на этапе Backup, а также отметить компоненты, конфигурацию которых требуется восстановить (чекбоксом Check All можно сразу выбрать все доступные пункты);
    После нажатия кнопки Restore, будут восстановлены конфигурационные файлы и ветки реестра.

     



Генерация public и private key

Данная настройка требуется при использования модулей интеграции Indeed AM Windows logon и ESSO.

После обновления сервера, начиная с версии 8.2.2, требуется сгенерировать ключи (public и private key) и прописать их в конфигурационном файле сервера.

Утилита для генерации ключей находится в дистрибутиве по пути: Indeed AM<номер версии>\Indeed Access Manager Server\<номер версии>\Misc\AccessManager.Tools.KeyGen.Console.
Запускать генератор ключей следует из PowerShell со следующими параметрами:

-n keys --out-dir c://indeed

  • Параметр -n является обязательным - это имя файла. При генерации формируется 2 файла. Приватный ключ формируется без расширения, публичный ключ с расширением .pub.
  • Параметр --out-dir - путь к каталогу, в который будут записаны файлы ключевой пары. Путь можно указывать относительный или абсолютный. Данный параметр не является обязательным. Если его не указать, то файлы ключевой пары будут сформированы в каталоге с утилитой.



После генерации ключей, вставляем их в конфигурационный файл: C:\inetpub\wwwroot\am\core\Web.config.
Если серверов AM несколько, генерируем ключи один раз и записываем их в конфигурационные файлы серверов.
На всех серверах АМ public и private key должны быть одинаковые!




Далее создаём групповую политику и распространяем publicKey по рабочим станциям.




При включении политики создается строковый параметр реестра "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Policies\Indeed-ID\AM\CacheServer\SessionPublicKey".

Требуемые файлы политики:

  • IndeedID.SessionPublicKey.admx;
  • IndeedID.SessionPublicKey.adml;
  • IndeedID.BaseFile.admx;
  • IndeedID.BaseFile.adml.

Файлы групповых политик находятся в дистрибутиве по пути: Indeed<номер версии>\Misc\ADMX Templates.

(3 голос(а))
Эта статья полезна
Эта статья бесполезна

Комментарии (0)
Портал технической поддержки компании Индид