# Добавление серверов ПринтМенеджера в кластер

## Цель

Добавление второго и последующих серверов ПринтМенеджера в существующий кластер Active-Active.

## Предусловия

- Установлен и настроен балансировщик HAProxy.
- Установлен первый ПринтМенеджер в кластере.
- На сервере балансировщика в директории `/opt/printum_balancer/certificates/<IP_или_домен_ПМ>` находится архив `printum_config.tar.gz` для нового сервера.

## Шаги установки

### Шаг 1. Установите второй и последующие ПМы

Установка аналогична установке первого ПринтМенеджер из раздела [Установка первого ПринтМенеджера в кластере](https://wiki.printum.io/books/3-ustanovka/page/ustanovka-pervogo-printmenedzera-v-klastere).

Отличием является только файл `printum_config.tar.gz`, который нужно взять из соответствующей папки на сервере с балансировщиком (с соответствующим IP-адресом или доменным именем нового сервера).

### Шаг 2. Добавление дополнительного сервера (5 и более)

Если необходимо добавить сервер, не входящий в исходную конфигурацию: 
- Проведите установку балансировщика ещё раз с указанием необходимых серверов.
- Установите ПринтМенеджер в шаге 1.
- Отредактируйте на каждом сервере файл `.env` в директории `/opt/printmanager`. Измените список IP адресов или hostname в строке `REDIS_SENTINEL_LIST`, указав все сервера.
- Перезапустите приложение ПринтМенеджер командами:
  ```
  cd /opt/printmanager
  sudo docker-compose down
  sudo docker-compose up -d
  ```

## Ожидаемый результат

- ПринтМенеджеры установлена на серверах без ошибок.
- После установки всех ПринтМенеджеров на странице балансировщика `https://BALANCER_ADR:7000/` все строки станут зелёными.

## Как проверить установку

- Откройте страницу по адресу `https://BALANCER_ADR:7000/` и убедитесь, что все строки ПринтМенеджер стали зелёными.
- Выполните проверку по разделу [Проверка корректности установки кластера](https://wiki.printum.io/books/3-ustanovka/page/proverka-korrektnosti-ustanovki-klastera).

## Следующие шаги

Проверка корректности установки кластера

## Типовые ошибки

| Ошибка | Причина | Решение |
| ------ | ------- | ------- |
| `django.db.utils.OperationalError: FATAL: sorry, too many clients already` | Превышено максимальное количество подключений к PostgreSQL после добавления новых узлов. | Увеличить `max_connections` в конфигурации PostgreSQL: <br><br>`max_connections = (3×N + 70) × T`<br><br>где `N` — количество ядер CPU, `T` — итоговое число серверов ПринтМенеджер в кластере |


---

## Связанные страницы

- [Установка первого ПринтМенеджера в кластере](https://wiki.printum.io/books/3-ustanovka/page/ustanovka-pervogo-printmenedzera-v-klastere)
- [Проверка корректности установки кластера](https://wiki.printum.io/books/3-ustanovka/page/proverka-korrektnosti-ustanovki-klastera)