# Инструкция по установке

***

Прежде чем развертывать **X Recovery Manager (XRM)**, необходимо обратить внимание на его особенности. **XRM** представляет собой приложение, которое работает в среде контейнеризации **Docker**. Для успешной установки и работы убедитесь, что на вашей операционной системе (ОС) установлены **Docker** и **Docker Compose**.

{% hint style="info" %}
**Что такое Docker:**

Docker - это открытая платформа для разработки, доставки и запуска приложений в контейнерах. Контейнеры позволяют упаковывать приложения и все их зависимости в изолированных средах, что обеспечивает единообразные и надежные развертывания приложений в различных средах.

**Что такое Docker Compose:**

Docker Compose - это инструмент, который позволяет определить и запускать многоконтейнерные приложения с помощью файла конфигурации YAML. Это упрощает развертывание и управление связанными между собой контейнерами.
{% endhint %}

Развертывание осуществляется через терминал. Откройте терминал (командную строку) на вашей системе. Для этого вы можете нажать сочетание клавиш `Ctrl + Alt + T` (для большинства дистрибутивов Linux) или просто найти и запустить приложение "Терминал" (Terminal).

Для запуска XRM на целевой системе должен быть предварительно установлен и настроен **Docker**. Если его нет, следуйте инструкциям по установке на официальном сайте Docker Compose для **Windows, Mac, Linux**: <https://docs.docker.com/engine/install/>

Информация об установке Docker [на российские ОС](https://kb.x-rm.ru/dokumentaciya/dokumentaciya/xrm-versiya-1.1/ustanovka-docker-na-rossiiskie-os) Astra Linux, ОС АЛЬТ, ROSA Linux, РЕД ОС

[Пошаговое развертывание X Recovery Manager на примере РЕД ОС: 7.3.2 (RED OS MUROM)](https://kb.x-rm.ru/dokumentaciya/dokumentaciya/xrm-versiya-1.1/ustanovka-xrm-na-red-os)

***

### Пошаговое развертывание **X Recovery Manager на примере ОС Ubuntu 22.04 (jammy)**

#### **Шаг 1.** Установка Docker:

**1.1.** Обновить индексы пакетов apt.

```bash
sudo apt update
```

**1.2.** Установить пакеты необходимые для работы пакетного менеджера apt по протоколу HTTPS.

```bash
sudo apt install curl software-properties-common ca-certificates apt-transport-https -y
```

Флаг -y означает, что на все вопросы терминала ответом будет *«*&#x414;&#x430;*»*

**1.3.** Добавить GPG-ключ репозитория Docker.

```bash
curl -f -s -S -L https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
```

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

**1.4.** Добавить репозиторий Docker (для версии Ubuntu 22.04 - *«*&#x4A;amm&#x79;*»*. Для других версий ОС нужно использовать их кодовые имена).

```bash
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu jammy stable"
```

Во время выполнения терминал попросит подтвердить выполнение операции. Нажимаем Enter.

**1.5.** Обновить индексы пакетов apt.

```bash
sudo apt update
```

**1.6.** Проверить репозиторий. Убедиться, что инсталляция будет осуществлена из нужного нам репозитория

```bash
apt-cache policy docker-ce
```

Вывод:

```bash
docker-ce:
  Installed: (none)
  Candidate: 5:24.0.5-1~ubuntu.22.04~jammy
  Version table:
     5:24.0.5-1~ubuntu.22.04~jammy 500
        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
     5:24.0.4-1~ubuntu.22.04~jammy 500
        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
     5:24.0.3-1~ubuntu.22.04~jammy 500
        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
     5:24.0.2-1~ubuntu.22.04~jammy 500
        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
     5:24.0.1-1~ubuntu.22.04~jammy 500
        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
     5:24.0.0-1~ubuntu.22.04~jammy 500
        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
     5:23.0.6-1~ubuntu.22.04~jammy 500
        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
 *** 5:23.0.5-1~ubuntu.22.04~jammy 500
        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
        100 /var/lib/dpkg/status
     5:23.0.4-1~ubuntu.22.04~jammy 500
        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
     5:23.0.3-1~ubuntu.22.04~jammy 500
        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
     5:23.0.2-1~ubuntu.22.04~jammy 500
        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
     5:23.0.1-1~ubuntu.22.04~jammy 500
        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
     5:23.0.0-1~ubuntu.22.04~jammy 500
        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
     5:20.10.24~3-0~ubuntu-jammy 500
        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
     5:20.10.23~3-0~ubuntu-jammy 500
        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
     5:20.10.22~3-0~ubuntu-jammy 500
        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
     5:20.10.21~3-0~ubuntu-jammy 500
        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
     5:20.10.20~3-0~ubuntu-jammy 500
        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
     5:20.10.19~3-0~ubuntu-jammy 500
        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
     5:20.10.18~3-0~ubuntu-jammy 500
        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
     5:20.10.17~3-0~ubuntu-jammy 500
        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
     5:20.10.16~3-0~ubuntu-jammy 500
        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
     5:20.10.15~3-0~ubuntu-jammy 500
        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
     5:20.10.14~3-0~ubuntu-jammy 500
        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
     5:20.10.13~3-0~ubuntu-jammy 500
        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
```

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

**1.7.** После манипуляций с репозиториями перейдем непосредственно к установке Docker.

```bash
sudo apt install docker-ce -y
```

После выполнения команды начнется установка докера.

**1.8.** Убедиться в успешности установки, проверив статус в системе.

```bash
sudo systemctl status docker
```

Вывод:

```bash
● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2023-06-01 09:52:31 UTC; 2 months 14 days ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 817 (dockerd)
      Tasks: 68
     Memory: 240.2M
        CPU: 6h 54min 24.126s
     CGroup: /system.slice/docker.service
             ├─    817 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
```

В терминале должна появиться информация о том, что Docker активен: статус active (running).

#### **Шаг 2.** Установка Docker Compose:

**2.1.** Загрузить Docker Compose версии 2.17.3 из официального репозитория Github.

```bash
mkdir -p ~/.docker/cli-plugins/
curl -SL https://github.com/docker/compose/releases/download/v2.17.3/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose
```

**2.2.** Установить правильные разрешения.

```bash
chmod +x ~/.docker/cli-plugins/docker-compose
```

{% hint style="success" %}
**Рекомендуемые версии Docker и Docker Compose**

Для стабильной работы **XRM** на **ОС Ubuntu 22.04** рекомендуем использовать версии **Docker** версия 23.0.5 и выше. **Docker Compose** версия 2.17.3 и выше.

Для проверки установленной версии Docker Compose.

```bash
docker compose version
```

Для проверки установленной версии Docker.

```bash
docker -v
```

{% endhint %}

#### **Шаг 3. Установка XRM:**

После того, как **Docker** и **Docker Compose** установлены, приступаем к развертыванию **X Recovery Manager** **версии 1.1.** с использованием контейнеров **Docker**.&#x20;

**3.1.** Создать директорию **xrm\_v1.1** для X Recovery Manager в каталоге `/home`

```bash
sudo mkdir /home/xrm_v1.1
```

Убедиться, что она была успешно создана.

```bash
ls -l /home
```

Вы должны увидеть список файлов и папок в каталоге `/home`, включая только что созданную папку `xrm_v1.1`

**3.2.** Перейти в нее.

```bash
cd /home/xrm_v1.1
```

**3.3.** Загрузить файл архив **XRM** `xrm-docker_v1_1.tar.gz`

```bash
sudo wget https://files.x-rm.ru/releases/v1.1/xrm-docker_v1_1.tar.gz
```

**3.4.** Распаковать содержимое архива`xrm-docker_v1_1.tar.gz` в директорию home`/xrm_v1.1`

```bash
sudo tar -zxvf xrm-docker_v1_1.tar.gz
```

**3.5.** Выполнить развертывание сервисов веб-приложения XRM.

```bash
sudo docker compose up -d
```

#### Установка завершена.

После развертывания XRM в системе, вы можете проверить состояния контейнеров. Убедиться, что сервисы успешно запущены и работают.

```bash
sudo docker ps -a
```

Вывод:

```
CONTAINER ID   IMAGE                                   COMMAND                  CREATED       STATUS                   PORTS                                                 NAMES
6a69ab0da195   stackstorm/st2actionrunner:latest       "/st2client-startup.…"   2 hours ago   Up 2 hours (healthy)                                                           xrm-client
51b23390adcc   xrmtech/st2web_xrm:v1.1                 "/bin/bash -c 'if [ …"   2 hours ago   Up 2 hours (healthy)     0.0.0.0:80->80/tcp, 443/tcp                           xrm-web
7531ca360b5b   stackstorm/st2rulesengine:latest        "/opt/stackstorm/st2…"   2 hours ago   Up 2 hours                                                                     xrm-rulesengine
d69a31ccd3fc   stackstorm/st2workflowengine:latest     "/opt/stackstorm/st2…"   2 hours ago   Up 2 hours                                                                     xrm-workflowengine
8f643d3460a3   stackstorm/st2timersengine:latest       "/opt/stackstorm/st2…"   2 hours ago   Up 2 hours                                                                     xrm-timersengine
513bee24258d   stackstorm/st2garbagecollector:latest   "/opt/stackstorm/st2…"   2 hours ago   Up 2 hours                                                                     xrm-garbagecollector
9fca2e2cdb99   stackstorm/st2auth:latest               "/opt/stackstorm/st2…"   2 hours ago   Up 2 hours               9100/tcp                                              xrm-auth
20c316ee4cdb   stackstorm/st2notifier:latest           "/opt/stackstorm/st2…"   2 hours ago   Up 2 hours                                                                     xrm-notifier
7650800d213e   stackstorm/st2sensorcontainer:latest    "/opt/stackstorm/st2…"   2 hours ago   Up 2 hours                                                                     xrm-sensorcontainer
088d10cc3838   stackstorm/st2actionrunner:latest       "/opt/stackstorm/st2…"   2 hours ago   Up 2 hours                                                                     xrm-actionrunner
dd07787b8bd9   stackstorm/st2scheduler:latest          "/opt/stackstorm/st2…"   2 hours ago   Up 2 hours                                                                     xrm-scheduler
ed23b2bd94cd   stackstorm/st2stream:latest             "/opt/stackstorm/st2…"   2 hours ago   Up 2 hours               9102/tcp                                              xrm-stream
8095b93a7784   stackstorm/st2api:latest                "/opt/stackstorm/st2…"   2 hours ago   Up 2 hours               9101/tcp                                              xrm-api
591a23ad9d46   mongo:4.4                               "docker-entrypoint.s…"   2 hours ago   Up 2 hours               27017/tcp                                             xrm-mongo
06591342cabf   redis:6.2                               "docker-entrypoint.s…"   2 hours ago   Up 2 hours               6379/tcp                                              xrm-redis
c7f40970628e   rabbitmq:3.8                            "docker-entrypoint.s…"   2 hours ago   Up 2 hours               4369/tcp, 5671-5672/tcp, 15691-15692/tcp, 25672/tcp   xrm-rabbitmq
e30823f98541   xrmtech/xrm-controller:v1.1             "./xrm-controller"       2 hours ago   Up 2 hours               0.0.0.0:8080->8080/tcp, :::8080->8080/tcp             xrm-controller
```

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


---

# 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/xrm-versiya-1.1/instrukciya-po-ustanovke.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.
