# Руководство по внедрению в среде 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="/files/JP2kcg0PrvIWK9kaCqVq" 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="/files/xWpkN8XooZ58QqQLo4U8" 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="/files/EldzFp6ar5goMxW2AS8D" alt=""><figcaption></figcaption></figure>

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

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

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

<figure><img src="/files/lRYQ9m5N1VnNc7XAciwm" 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="/files/U1mjPvZwer9xVXEcQd7n" 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="/files/JBEaHqmVDQJRVkXd0uVV" 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="/files/kEeENCGHRaZ1B1Z9G9Q6" alt=""><figcaption></figcaption></figure>

***

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

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

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

<figure><img src="/files/IrsY4HNS2JHA4PoxRgxw" 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="/files/LP9QsD45RhT5v3WtqcOt" 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>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://kb.x-rm.ru/dokumentaciya/dokumentaciya-xrm-director/xrmd-versiya-1.1.0/rukovodstvo-administratora/rukovodstvo-po-vnedreniyu-v-srede-openuds.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
