# Обновление/Установка KUMA версии до 2.0.Х (распределенная инсталляция)

<p class="callout danger">НЕ актуальная статья</p>

1. Создайте резервную копию ресурсов и сертификатов, см. советующий раздел в этой книге.
2. Распакуйте архив (операции выполняются на ядре системы KUMA): ```bash
    tar -xvf kuma-ansible-installer-(ВЕРСИЯ).tar.gz
    ```
3. Перейдите в распакованную папку: ```bash
    cd kuma-ansible-installer
    ```
4. Добавить файл лицензии в папку `kuma-ansible-installer/roles/kuma/files` и переименовать на `license.key`: ```bash
    cp ПУТЬ_ДО_КЛЮЧА*.key roles/kuma/files/license.key
    ```
5. Выполните команду копирования шаблона (либо подставьте ранее использованный файл при обновлении): ```bash
    cp distributed.inventory.yml.template distributed.inventory.yml
    ```
6. Добавьте публичный ключ SSH на все удаленные хосты в том числе и для хоста с которого происходит развертывание:  
      
    
    1. На <span class="ui-provider ed blm bln blo blp blq blr bls blt blu blv blw blx bly blz bma bmb bmc bmd bme bmf bmg bmh bmi bmj bmk bml bmm bmn bmo bmp bmq bmr bms bmt" dir="ltr">ВСЕХ </span>хостах в конфигурации сервиса SSH должна быть включена опция удаленного входа от суперпользователя!
    2. На хосте с которого происходит развертывание сгенерируйте ключ командой (без указания пароля и доп. параметров): ```bash
        ssh-keygen -t rsa
        ```
    3. Добавьте ключ по ssh на удаленные хосты и на сам хост развертывания: ```bash
        ssh-copy-id login@remote_host_fqdn
        ```
7. Отредактируйте файл инвентаря с командой: ```bash
    nano distributed.inventory.yml
    ```

В случае ручной правки файла старайтесь не добавлять лишних пробелов.

Количество keeper (ZooKeeper) должно быть нечетным (минимум 3). Если, например, хранилища два, то в файле инвентаря укажите в `storage: hosts: <полное_доменное_имя_машины>`: (этом может быть core, collector) с его IP адресом и значением keeper, по аналогии с другими записями. Например, если используется два хранилища, то конфигурация storage будет выглядеть следующим образом:

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-08/scaled-1680-/rDpimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-08/rDpimage.png)

Для развертывания отдельного одного хранилища без кластера используйте следующие настройки в `distributed.inventory.yml`:

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-08/scaled-1680-/Emlimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-08/Emlimage.png)

**Демонстрационные сервисы**  
Если Вы хотите, чтобы инсталлятор развернул демонстрационные сервисы, присвойте параметру deploy\_example\_services значение true (Только для новых инсталляций).

**Генерация содержимого файла /etc/hosts**  
Если целевые машины НЕ зарегистрированы в DNS-зоне вашей организации, то присвойте параметру generate\_etc\_hosts значение true и для каждой машины в инвентаре, замените значения параметра ip 0.0.0.0 на актуальные IP-адреса.

**Список целевых машин**  
В файле определены 4 группы, именованные аналогично ключевым компонентам KUMA: core, collector, correlator, storage. Помещая целевую машину в одну из групп, вы инструктируете инсталлятор установить на нее соответствующий компонент KUMA. В каждой группе замените строки с суффиксом \*.example.com на актуальные имена хостов целевых машин.

- Группа core. Может содержать только одну целевую машину.
- Группа collector. Может содержать одну или несколько целевых машин.
- Группа сorrelator. Может содержать одну или несколько целевых машин.
- Группа storage. Может содержать одну или несколько целевых машин. Каждая машина должна иметь одну из следующих комбинаций параметров: 
    - shard + replica + keeper
    - shard + replica
    - keeper

Про устройство кластера хранилища можно почитать **[тут](https://kb.kuma-community.ru/books/kuma-how-to/page/ustroistvo-klastera-xranilishha)**.

Если хранилище одно, то оставьте параметры shard + replica + keeper, как у kuma-storage-1.example.com

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

8\. Входим в ОС из-под суперпользователя (root):

```bash
sudo -i
```

9\. Запустите процесс инсталляции:

```bash
./install.sh distributed.inventory.yml
```

10\. Выполните настройку storage на использование двух хранилищ. В точках назначения нужно добавить URL второго хранилища, (если используются отдельные keeper, то их не нужно указывать в точках назначения) пример ниже:

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-08/scaled-1680-/I7Pimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-08/I7Pimage.png)

Корректность работы можно проверить, перейдя во вкладку События и нажав на значок увеличительного стекла (Поиск), должны появиться события, поступающие KUMA или Сообщение «События не найдены». Если при поиске возникает ошибка, то необходимо проверить статусы сервисов в веб интерфейсе KUMA. Провести первичный траблшутинг по этому документу и сообщить ответственному инженеру Лаборатории Касперского в случае неуспеха.