# Руководство по внедрению в среде OpenUDS

XRM Director – инструмент, предназначенный для централизованного управления и автоматизации обеспечения катастрофоустойчивости инфраструктуры на основе OpenUDS.

Основная функция XRM Director – автоматизированный перенос конфигураций между кластерами брокеров OpenUDS и предоставление единого веб-интерфейса управления ими. Это позволяет упростить процессы миграции и подготовки резервных площадок, минимизировать ошибки при управлении и исключить ручное копирование настроек между брокерами.

Его использование оправдано в ряде ситуаций и обеспечивает следующие преимущества:

1. **Обеспечение катастрофоустойчивости**: Брокеры OpenUDS играют критическую роль в инфраструктуре виртуальных рабочих мест организаций. XRM Director обеспечивает катастрофоустойчивость путём автоматизированного переноса конфигурации сервис-пулов с основного брокера на резервный.
2. **Минимизация времени подготовки резервной площадки**: Ручной перенос настроек брокеров может занимать значительное время и сопряжён с высоким риском ошибок. XRM Director позволяет выполнить перенос конфигурации за считанные минуты.
3. **Автоматизация процесса миграции**: Система автоматизирует генерацию плана восстановления и перенос конфигурации, что делает процесс более надёжным и уменьшает вероятность человеческих ошибок.
4. **Уменьшение операторских затрат**: Автоматизация переноса конфигурации с использованием XRM Director позволяет сэкономить время и ресурсы администраторов, так как весь процесс – от регистрации брокеров до запуска миграции – выполняется из единого интерфейса.

#### Рассмотрим последовательность шагов для миграции конфигурации

Для демонстрации процесса миграции конфигурации рассмотрим сценарий подготовки резервной площадки путём переноса конфигурации сервис-пулов между двумя независимыми инсталляциями брокеров на основе OpenUDS.

Предположим, что у нас есть два независимых брокера OpenUDS: **Broker1** (основная площадка) и **Broker2** (резервная площадка).

Основная площадка – это место, где развёрнуты продуктивные сервис-пулы, несущие бизнес-нагрузку организации. Однако для обеспечения непрерывности бизнес-процессов в случае аварийных ситуаций необходимо заблаговременно подготовить резервную площадку – перенести конфигурацию сервис-пулов с основного брокера на резервный.

XRM Director автоматизирует этот процесс: система считывает конфигурацию сервис-пулов с основного брокера, формирует план переноса и воспроизводит полную структуру на резервном брокере.

**Описание стенда:**

Две независимые инсталляции брокеров на основе OpenUDS. Каждая из них представляет собой отдельную площадку.

<table><thead><tr><th width="192.199951171875">Параметр</th><th>Основная площадка</th><th>Резервная площадка</th></tr></thead><tbody><tr><td>Имя брокера</td><td><strong>Broker1</strong></td><td><strong>Broker2</strong></td></tr><tr><td>Адрес брокера</td><td><strong>https://37.187.132.140:15043/</strong></td><td><strong>https://37.187.132.140:15143/</strong></td></tr><tr><td>Роль</td><td>Primary Broker</td><td>Secondary Broker</td></tr><tr><td>Логин</td><td><strong>admin_test</strong></td><td><strong>admin_test</strong></td></tr><tr><td>Пароль</td><td><strong>testPass123!</strong></td><td><strong>testPass123!</strong></td></tr><tr><td>Authenticator</td><td><strong>admin</strong></td><td><strong>admin</strong></td></tr><tr><td>Сервис-пулы</td><td><strong>testpool</strong>, <strong>test2pool</strong> (Active)</td><td><strong>отсутствуют</strong> (до миграции)</td></tr><tr><td>Группа</td><td><strong>Group 1</strong></td><td><strong>Group 1</strong></td></tr></tbody></table>

**Основная площадка (Broker1):**

* **Broker1** – основная площадка, на которой развёрнуты продуктивные сервис-пулы;
* **<https://37.187.132.140:15043/>** – адрес веб-интерфейса управления;
* Сервис-пулы: **testpool**, **test2pool** – оба в статусе **Active**;
* Именно их конфигурацию необходимо перенести на резервную площадку.

**Резервная площадка (Broker2):**

* **Broker2** – «пустая» резервная площадка, подготовленная к принятию конфигурации с основного брокера;
* **<https://37.187.132.140:15143/>** – адрес веб-интерфейса управления;
* Раздел сервис-пулов пуст: testpool и test2pool отсутствуют.

{% hint style="info" %}
Именно на Broker2 XRM Director выполнит перенос конфигурации в рамках плана восстановления.
{% endhint %}

#### Шаг 1. Настройка брокеров в XRM Director (Configure Brokers)

Войдите в веб-интерфейс XRM Director и перейдите в раздел настроек. Выберите пункт **Configure Brokers** – в этом разделе регистрируются все брокеры, которыми управляет система.

{% hint style="info" %}
Раздел Configure Brokers является отправной точкой для работы с системой. Без регистрации брокеров дальнейшая настройка групп и заданий невозможна.
{% endhint %}

**Шаг 1.1. Добавление основного брокера**

Нажмите кнопку **Добавить** и заполните параметры подключения для основного брокера.

<figure><img src="https://3897004327-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxtktVszR0RODYDYGVLjB%2Fuploads%2FAkq41NmCan7c62TMJG8y%2Fadd_broker.png?alt=media&#x26;token=2c725a43-6a19-4da9-ad24-abc46cadb44a" alt=""><figcaption></figcaption></figure>

В форме добавления указываются следующие поля:

<details>

<summary>Broker Name (имя брокера)</summary>

Уникальное имя, которое будет использоваться для идентификации брокера в системе. Рекомендуется использовать понятное обозначение роли площадки.

Пример: `Broker1`

</details>

<details>

<summary>Broker Address (адрес брокера)</summary>

Актуальный URL или IP-адрес брокера OpenUDS.

Пример:

`https://37.187.132.140:15043/` (для основного брокера)

`https://37.187.132.140:15143/` (для резервного брокера)

</details>

<details>

<summary>Username (имя пользователя)</summary>

Учётная запись с правами, достаточными для чтения и управления конфигурацией брокера.

Пример: `admin_test`

</details>

<details>

<summary>Password (пароль)</summary>

Пароль от указанной учётной записи.

Пример: `testPass123!`

</details>

<details>

<summary>Authenticator (аутентификатор)</summary>

Authenticator, настроенный на целевом брокере OpenUDS, в рамках которого будет выполнена аутентификация.

Пример: `admin`

</details>

**Шаг 1.2. Добавление резервного брокера**

Аналогичным образом добавьте второй брокер – резервную площадку. Нажмите **Добавить** и заполните параметры подключения для Broker2.

После сохранения оба брокера должны отображаться в общем списке и быть доступными для управления.

<figure><img src="https://3897004327-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxtktVszR0RODYDYGVLjB%2Fuploads%2FPE5fWjdMPKGZk1VPqiiD%2Flist_broker.png?alt=media&#x26;token=21392941-faa1-4a3c-a5dd-d105a989d640" alt=""><figcaption></figcaption></figure>

**Шаг 1.3. Проверка доступности брокеров через XRM Director**

Ключевая возможность XRM Director – открытие веб-интерфейса брокера непосредственно из системы. Для проверки доступности:

1. Выделите брокер в списке.
2. Нажмите кнопку **Управление**.
3. Система откроет веб-интерфейс выбранного брокера напрямую из XRM Director.

Обратите внимание на верхнюю панель: здесь отображаются **ID**, **имя** и **адрес** текущего брокера. Кнопка **Change** в правой части панели позволяет вернуться обратно в интерфейс XRM Director и выбрать другой зарегистрированный брокер для открытия через **Управление**

{% hint style="info" %}
Рекомендуется после добавления каждого брокера проверить его доступность через функцию  **Управление**, чтобы убедиться в корректности параметров подключения.
{% endhint %}

**Шаг 1.4. Проверка состояния основной площадки**

Выделите основной брокер (Broker1) нажмите **Управление,** перейдите с главного дашбоарда в раздел **"Просмотр сервис-пулов"** и убедитесь, что:

* на панели управления отображается информация о сервис-пулах;
* в разделе сервис-пулов находятся **testpool** и **test2pool**;
* оба пула имеют статус **Active**.

<figure><img src="https://3897004327-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxtktVszR0RODYDYGVLjB%2Fuploads%2F4xRiia3PGyaS34nzbkXN%2Fimage.png?alt=media&#x26;token=dbe12ac0-0e45-4987-a4e6-c71e30595be0" alt=""><figcaption></figcaption></figure>

**Шаг 1.5. Проверка состояния резервной площадки**

Переключитесь на второй брокер (Broker2) через кнопку **Change** или вернитесь в раздел Configure Brokers и нажмите **Управление** выбрав Broker2. Убедитесь, что:

* раздел сервис-пулов на резервной площадке **пуст**;
* testpool и test2pool **отсутствуют**.

<figure><img src="https://3897004327-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxtktVszR0RODYDYGVLjB%2Fuploads%2Fhp5iVh9knJyQ2x16UAB3%2Fimage.png?alt=media&#x26;token=a9d1f50b-2076-44aa-8e50-35a248f13202" alt=""><figcaption></figcaption></figure>

**Конфигурация брокеров завершена.**

***

#### Шаг 2. Настройка группы брокеров (Groups)

После регистрации брокеров необходимо объединить их в группу. В боковом меню выберите раздел **Группы.**

Группа – это логическое объединение двух брокеров для обеспечения катастрофоустойчивости. Каждая группа содержит **основной** (Primary) и **резервный** (Secondary) брокер.

{% hint style="info" %}
Без создания группы система не сможет однозначно определить, откуда должна считываться конфигурация и куда именно её необходимо переносить. Группа является обязательной сущностью для создания задания миграции.
{% endhint %}

**Создание новой группы**

В форме создания группы доступны следующие поля:

| Поле                 | Описание                                                                                           | Пример    |
| -------------------- | -------------------------------------------------------------------------------------------------- | --------- |
| **Group Name**       | Уникальное имя группы. Рекомендуется использовать имя, ясно отражающее назначение связки площадок. | `Group 1` |
| **Primary Broker**   | Основной брокер – площадка-источник конфигурации.                                                  | `Broker1` |
| **Secondary Broker** | Резервный брокер – площадка-приёмник конфигурации.                                                 | `Broker2` |

Для создания группы:

Нажмите кнопку **Добавить** и заполните параметры создания группы:

1. Укажите имя группы.
2. Выберите основной брокер в поле **Primary Broker**.
3. Выберите резервный брокер в поле **Secondary Broker**.

<figure><img src="https://3897004327-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxtktVszR0RODYDYGVLjB%2Fuploads%2FWxYBpwYTVk9nB2O2MQri%2Fimage.png?alt=media&#x26;token=27a60ee4-0ff4-432f-84f3-3a40d30827ec" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
Перед сохранением всегда перепроверяйте, что основной и резервный брокеры не перепутаны местами. Ошибка в назначении ролей приведёт к тому, что миграция пройдёт в обратном направлении.
{% endhint %}

После сохранения убедитесь, что группа отображается в списке с корректными параметрами:

* **Group Name** = Group 1;
* **Primary Broker Name** = Broker1;
* **Secondary Broker Name** = Broker2.

Именно на основе этой группы система будет выполнять задания миграции – переносить конфигурацию с основного брокера на резервный.

**Настройка группы завершена.**

***

#### Шаг 3. Создание задания миграции (Jobs)

Группа настроена – переходим к созданию задания миграции. В боковом меню выберите раздел **Задания** – здесь создаются задания, определяющие какие именно сервис-пулы будут перенесены и в рамках какой группы брокеров это произойдёт.

В верхней части раздела доступна панель управления заданиями:

<table><thead><tr><th width="286.800048828125">Действие</th><th>Описание</th></tr></thead><tbody><tr><td><strong>Добавить</strong></td><td>Создание нового задания миграции</td></tr><tr><td><strong>Удалить</strong></td><td>Удаление задания</td></tr><tr><td><strong>Сгенерировать конфигурацию</strong></td><td>Генерация плана восстановления по выбранному заданию</td></tr><tr><td><strong>Запустить</strong></td><td>Запуск миграции по подготовленному плану</td></tr></tbody></table>

**Создание нового задания**

Нажмите **Добавить** и заполните параметры задания:

<details>

<summary>Job Name (имя задания)</summary>

Уникальное имя задания миграции. Рекомендуется выбирать имя, которое ясно отражает суть операции.

Пример: `DailyBackupJob`

</details>

<details>

<summary>Group (группа брокеров)</summary>

Группа, по которой будет выполняться миграция. Выбирается из ранее созданных групп.

Пример: `Group 1`

</details>

<details>

<summary>Pools (сервис-пулы)</summary>

Перечень целевых сервис-пулов, конфигурация которых должна быть перенесена на резервную площадку.

Пример: `testpool;test2pool`

</details>

1. Укажите имя задания.
2. Выберите группу брокеров в поле **Group**.
3. Перечислите целевые сервис-пулы в поле **Pools**.

<figure><img src="https://3897004327-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxtktVszR0RODYDYGVLjB%2Fuploads%2F3ivc7wsaUuswrBtsTPdR%2Fimage.png?alt=media&#x26;token=c92e7195-9333-4dee-9369-ce6a3e50e3d9" alt=""><figcaption></figcaption></figure>

После сохранения задание должно отобразиться в списке со следующими параметрами:

* **Name** = DailyBackupJob;
* **Group Name** = Group 1;
* **Pools** = testpool;test2pool.

{% hint style="info" %}
Жизненный цикл задания: создание → проверка → генерация конфигурации → запуск → анализ журналов.
{% endhint %}

**Настройка задания миграции завершена.**

***

#### Шаг 4. Генерация плана восстановления&#x20;

Задание создано – теперь необходимо сгенерировать план восстановления. На этом этапе XRM Director подключается к основному брокеру, анализирует конфигурацию выбранных сервис-пулов и формирует план переноса.

**Запуск генерации**

1. Выделите задание **DailyBackupJob** в списке, отметив чекбокс.
2. Нажмите кнопку **Сгенерировать конфигурацию**.

Система анализирует конфигурацию выбранных сервис-пулов на основном брокере и формирует план переноса.

**Что делает система на этом этапе**

На этапе генерации XRM Director:

* подключается к основному брокеру (Primary Broker);
* считывает конфигурацию указанных сервис-пулов;
* сохраняет все параметры: состояние, транспорты, группы доступа, authenticators, пользователей;
* формирует внутренний план миграции.

  <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p>Для корректной генерации плана необходимо, чтобы основная площадка была доступна и учётные данные, указанные при регистрации брокера, были актуальными.</p></div>

  **План восстановления сгенерирован.**

***

#### Шаг 5. Запуск миграции

После успешной генерации плана всё готово к выполнению миграции.

**Запуск переноса конфигурации**

1. Убедитесь, что задание **DailyBackupJob** выделено в списке.
2. Нажмите кнопку  **Запустить**.

XRM Director начинает перенос конфигурации testpool и test2pool с основного брокера на резервный в рамках Group 1.

**Что делает система на этом этапе**

Во время выполнения Run XRM Director:

* считывает ранее сформированный план из файла конфигурации;
* подключается к резервному брокеру (Secondary Broker);
* пошагово создаёт и воспроизводит объекты – authenticators, группы, пользователей;
* переносит конфигурацию сервис-пулов;
* воспроизводит полную структуру основной площадки на резервном брокере.

  <div data-gb-custom-block data-tag="hint" data-style="warning" class="hint hint-warning"><p>Перед выполнением Run рекомендуется убедиться, что:</p></div>
* выбрано правильное задание;
* группа брокеров указана корректно;
* резервная площадка доступна;
* список сервис-пулов соответствует согласованному плану восстановления;
* на резервной площадке нет конфликтующей конфигурации.

**Миграция запущена.**

**Проверка результата:**

С помощью функции **Управление** из раздела **Брокеры** мы можем переключаться между интерфейсами управления брокеров. На площадке **Broker 2** в разделе **Просмотр сервис-пулов** теперь отображаются перенесенные пулы (**testpool и test2pool**), что подтверждает успешное завершение миграции и готовность резервной площадки к работе.

<figure><img src="https://3897004327-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxtktVszR0RODYDYGVLjB%2Fuploads%2F5QIn2OShzPqhV5YK7bPc%2Fswitch_broker.gif?alt=media&#x26;token=280b76e1-2dd3-4025-a242-724f7d39da4e" alt=""><figcaption></figcaption></figure>

***

#### Шаг 6. Просмотр журналов выполнения (Logs)

Переходим в раздел **Журналы**, чтобы проследить ход выполнения задания и убедиться в успешном завершении операций, в боковом меню выберите раздел.

В таблице журналов должны отображаться как минимум две записи для задания DailyBackupJob Запись генерации плана восстановления и запись выполнения миграции.

<figure><img src="https://3897004327-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxtktVszR0RODYDYGVLjB%2Fuploads%2FsizThdXzI2GxvadsbPgF%2Fimage.png?alt=media&#x26;token=7512e07a-109f-42ea-97ed-394d7bffb2a2" alt=""><figcaption></figcaption></figure>

**Шаг 6.1. Анализ записи 1 -** генерации плана восстановления&#x20;

Выберите первую запись – журнал генерации плана. Для просмотра содержимого:

1. Выберите нужную строку в таблице журнала.
2. Отметьте её чекбоксом.
3. Нажмите кнопку просмотра.

В журнале должны отображаться:

* запись о подключении к основному брокеру;
* считанная конфигурация целевых сервис-пулов;
* детально все атрибуты сервис-пула: состояние, транспорты, группы доступа, authenticators, пользователи;
* отсутствие ошибок чтения конфигурации.

**Шаг 6.2. Анализ записи 2 -** выполнение миграции

Выберите вторую запись – журнал выполнения миграции.

В журнале пошагово отображается:

* чтение сохранённого плана из файла конфигурации;
* отправка данных на резервный брокер;
* создание authenticators;
* создание групп;
* создание пользователей;
* создание и привязка сервис-пулов;
* полное воспроизведение структуры основной площадки.

В случае неуспешного выполнения журнал будет содержать информацию об ошибках, которая поможет определить причину сбоя.

**Анализ журналов завершён.**

***

#### Шаг 7. Проверка результатов миграции

Миграция выполнена. Теперь необходимо убедиться в фактическом результате переноса конфигурации на резервную площадку.

**Шаг 7.1. Открытие резервного брокера**

1. Вернитесь в раздел **Configure Brokers** (В боковом меню раздел **Брокеры.**)
2. Выберите второй брокер – резервную площадку (Broker2).
3. Нажмите **Управление**, чтобы открыть интерфейс Broker2.

**Шаг 7.2. Проверка панели управления**

На панели управления Broker2 убедитесь, что теперь здесь отображаются сервис-пулы, до миграции было значение "Сервис-пулов: 0".

**Шаг 7.3. Проверка сервис-пулов**

Перейдите с главного дашбоарда в раздел **"Просмотр сервис-пулов"** на Broker2 и убедитесь, что:

* оба пула – **testpool** и **test2pool** – успешно перенесены;
* оба пула находятся в статусе **Active**;
* конфигурация полностью воспроизведена: всё идентично основной площадке.

<figure><img src="https://3897004327-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxtktVszR0RODYDYGVLjB%2Fuploads%2F9iV8kdnfqdusgmUkI0qH%2Fimage.png?alt=media&#x26;token=05d4f4d6-37b5-4cea-8a52-8910e4246171" alt=""><figcaption></figcaption></figure>

**Шаг 7.4. Что считается подтверждением успешной миграции**

Администратор может считать миграцию успешной, если одновременно выполнены следующие условия:

* в журналах нет критических ошибок;
* операция **генерация конфигурации** завершилась успешно;
* операция **запуск миграции** завершилась успешно;
* на резервном брокере появились ожидаемые сервис-пулы;
* сервис-пулы находятся в статусе **Active**;
* ключевые элементы конфигурации воспроизведены корректно.

***

#### Итог

В рамках данного руководства был продемонстрирован полный цикл работы XRM Director: от регистрации брокеров до переноса конфигурации на резервную площадку.

Весь процесс включает в себя следующую последовательность шагов:

| Шаг | Действие                  | Результат                                                |
| --- | ------------------------- | -------------------------------------------------------- |
| 1   | Настройка брокеров        | Основная и резервная площадки зарегистрированы в системе |
| 2   | Создание группы           | Брокеры объединены в логическую группу                   |
| 3   | Создание задания миграции | Определены целевые сервис-пулы для переноса              |
| 4   | Генерация плана           | Конфигурация основной площадки считана и сохранена       |
| 5   | Запуск миграции           | Конфигурация перенесена на резервную площадку            |
| 6   | Просмотр журналов         | Ход выполнения проверен, ошибки отсутствуют              |
| 7   | Проверка результатов      | Сервис-пулы появились на резервном брокере               |

Без XRM Director эти операции потребовали бы ручного копирования настроек между брокерами – долго, сложно и с высоким риском ошибок. XRM Director автоматизирует обеспечение катастрофоустойчивости инфраструктуры, делая процесс восстановления быстрым, надёжным и прозрачным.

* <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p>Обратите внимание, что данный документ описывает типовой сценарий миграции конфигурации. В зависимости от конкретной ситуации и конфигурации вашей инфраструктуры OpenUDS могут потребоваться дополнительные действия и настройки.</p></div>
