Подготовка к обновлению состоит из нескольких шагов
Если в инфраструктуре используется несколько серверов АМ с балансировщиком, первым делом выводим обновляемый сервер из балансировки; Рассмотрим на примере HAProxy: Имеем 2 сервера Indeed с именами AM1 и AM2, которые находятся в балансировке. Для обновления сервера АМ2, выводим его из балансировки. Сервер АМ1 в свою очередь продолжит работу, все запросы пойдут на него и для пользователей это будет прозрачно.
Для минимизации каких-либо проблем, выполнять обновление рекомендуется в период наименьшей активности пользователей. Также, на время обновления, желательно запретить пользователям регистрировать/изменять/удалять аутентификаторы, т.к. базу данных на АМ2 мы сделаем отдельную, с АМ1 зарегистрированные за это время аутентификаторы не перенесутся!
- Выводим один из серверов из балансировки:
- Подключаемся к балансировщику, получаем права администратора, а затем редактируем конфигурационный файл:
- sudo su;
- nano /etc/haproxy/haproxy.cfg;

- В строке проверки доступности серверов комментируем (#) строку с нужным сервером:
В приведенном примере имеем 2 бекэнда, соответственно комментируем две строки с сервером АМ2.
 Сохраняем изменения (Ctrl+O, Enter) и выходим из файла (Ctrl + X).
- Далее перезапускаем службу и выходим из консоли:
- systemctl restart haproxy;
- exit;

- Если у вас несколько серверов балансировки, данную процедуру нужно проделать на каждом из них!
- Делаем резервную копию базы данных Core сервера и разворачиваем из неё отдельную БД для обновляемого сервера:
Рассмотрим на примере SQL:
- Делаем бекап Core сервера:

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

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

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

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

- Перезапускаем IIS.
- Делаем бекапы конфигурационных файлов вручную или используем инструмент 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 изменились, если вы обновляетесь с версии ниже - нужно перевыписывать лицензии.
- Делаем выгрузку реестра:
- Компьютер\HKEY_LOCAL_MACHINE\SOFTWARE\Indeed-ID:

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

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

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

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

Готово. Теперь сервер АМ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.
|