Установка балансировщика HAProxy

Цель

Установка балансировщика нагрузки HAProxy для кластерной конфигурации ПринтМенеджеров.

Предусловия

Варианты развёртывания схемы с балансировкой

Возможно два варианта развёртывания схемы балансировки:

Шаги установки Массового развёртывания схемы с балансировкой

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

Требования для выполнения массового развертывания

Подключение по SSH

Подтверждение доверия SSH-сертификатов

Права пользователя

Проверка конфигурации

Убедитесь, что файл config.ini заполнен корректно:

Инструкция по запуску скрипта

  1. Перейдите в директорию со скриптом массовой установки:​

    cd /path/to/script
    
  2. Запустите скрипт:​

    sudo ./install_all_offline.sh
    
  3. Если требуются детализированные логи для диагностики, используйте отладочный режим:​

    sudo DEBUG=1 ./install_all_offline.sh  
    

Порядок установки

Шаг 1. Подготовка базы данных и NFS-хранилища​

Подготовка описана в разделах:

Шаг 2. Получение сертификатов

Если используются собственные SSL-сертификаты:

Шаг 3. Запуск установки

Скопируйте дистрибутивы на сервер балансировщика

Скопируйте на сервер балансировщика дистрибутивы Мониторинга, ПринтМенеджера и Балансировщика вместе с файлами контрольных сумм:

Проверьте контрольные суммы
sha512sum -c <имя_файла>.sha512
Распакуйте архив балансировщика
tar xzvf printum-balancer-X3.Y3.Z3.tar.gz
cd printum-balancer-X3.Y3.Z3
Создайте файл конфигурации
cp config_example.ini config.ini
Отредактируйте файл config.ini

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

Сохраните файл config.ini. Этот файл понадобится для будущих обновлений

Выполните установку

Используйте скрипт install_all_offline.sh с правами администратора:​

sudo ./install_all_offline.sh

Если при этом появляется ошибка Permission denied, сделайте файл исполняемым и повторите запуск:

chmod +x install_all_offline.sh
sudo ./install_all_offline.sh
Ожидайте завершения процесса установки

В случае необходимости введите пароль для подключения по SSH и копирования файлов с использованием SCP.

Проверьте корректность установки

Используйте раздел Проверка корректности установки кластера.

Описание конфигурационного файла

Конфигурационный файл config.ini используется для автоматического развёртывания и обновления системы. Он должен содержать обязательные секции, которые обозначаются квадратными скобками: [General].

Каждая секция содержит параметры в формате КОНСТАНТА = ЗНАЧЕНИЕ. Между константой и её значением должен быть знак равенства, обрамлённый пробелами.

Пример: PM_HTTP_PORT = 8010

Если константа не требует значения, её можно удалить, закомментировать или оставить пустой (с пробелом после знака равно).

Пример: SSL_CERT_CA =

Файл должен включать не менее шести секций:

Секция [General]

Секция [General] содержит общие параметры для всех серверов. Ниже приведён перечень доступных констант:

Секция [Balancer]

Секция [Balancer] содержит параметры, необходимые для настройки сервера балансировки.

Доступные параметры:

Секция [Monitoring]

Секция [Monitoring] содержит параметры для сервера, выделенного под систему мониторинга.

Доступные параметры:

Секции [PrintManager_1], [PrintManager_2], ..., [PrintManager_N]

Секции [PrintManager_X] (где X — номер сервера) содержат настройки для подключения к соответствующим серверам с ПринтМенеджером.

Доступные параметры:

Шаги для добавления сервера

  1. В секции [Monitoring] укажите параметр SKIP = true, чтобы предотвратить повторную установку мониторинга.
  2. Для добавления 5 и более серверов с ПринтМенеджером добавьте в файл конфигурации необходимое количество секций, используя следующий шаблон:​
    [PrintManager_ID]
    PM_HOSTNAME =
    USER =
    PASSWORD =
    SSL_CERT =
    SSL_KEY =
    
    где ID — порядковый номер сервера. Убедитесь, что номера серверов идут последовательно, без пропусков (например, [PrintManager_1], [PrintManager_2], [PrintManager_3] и т.д.).
  3. Запустите скрипт массовой установки повторно. После выполнения скрипта в терминале отобразятся ссылки для доступа к админке новых серверов.
  4. Проверьте корректность работы системы по чек-листу.

Шаги установки схемы балансировщика в ручном режиме

Шаг 1. Скопируйте дистрибутивы на сервер балансировщика

Скопируйте на сервер балансировщика дистрибутивы Мониторинга, ПринтМенеджера и Балансировщика вместе с файлами контрольных сумм:

Шаг 2. Проверьте контрольные суммы

sha512sum -c <имя_файла>.sha512

Шаг 3. Распакуйте архив балансировщика

tar xzvf printum-balancer-X3.Y3.Z3.tar.gz
cd printum-balancer-X3.Y3.Z3

Шаг 4. Настройте переменные окружения

Введите следующие команды для настройки (оставайтесь в этом же терминале до завершения установки):

export NFS_ADDR=<NFS_ADDR>
export NFS_PATH=<NFS_FOLDER_PATH>
export DATABASE_URL=postgres://<POSTGRES_LOGIN>:<POSTGRES_PASSWORD>@<DB_HOST>:<PORT>/<BASE_NAME>

Если требуется указать схему базы данных:

export DATABASE_URL=postgres://<POSTGRES_LOGIN>:<POSTGRES_PASSWORD>@<DB_HOST>:<PORT>/<BASE_NAME>?currentSchema=<POSTGRES_SCHEMA>

Если база использует нестандартное табличное пространство:

export DATABASE_TABLESPACE=<DATABASE_TABLESPACE>

где:

Если вы настроили NFS через туннель stunnel, то обязательно укажите:

export NFS_TLS=true

Если порт stunnel отличается от 20490, то укажите еще порт:​

export NFS_STUNNEL_PORT=<NFS_STUNNEL_PORT>

где:

Также вы можете указать логин и пароль для страницы HAProxy:

export STATS_USER=<STATS_USER>
export STATS_PASSWORD=<STATS_PASSWORD>

Если пароль и логин не указан, то будет установлен логин admin и пароль admin. Логин и пароль записаны в файле /opt/printum_balancer/.env.

Шаг 5. Запустите установку

С автоматическими сертификатами:

sudo -E ./install.sh -balancer <BALANCER_ADR> -pm <PM_1> -pm <PM_2> -pm <PM_3>

С собственными сертификатами:

export SSL_CERT=<client.crt>
export SSL_KEY=<client.key>
export SSL_CERT_CA=<ca.crt>
sudo -E ./install.sh -balancer <BALANCER_ADR> -pm <PM_1> -pm <PM_2> -pm <PM_3>

где:

Ожидаемый результат

Если установка прошла без ошибок, то в консоли будет выведено сообщение об успехе и http-адрес для доступа к панели HAProxy:

Статус HAProxy доступен по адресу: https://BALANCER_ADR:7000/

Во время установки балансировщика будут автоматически записаны настройки для балансировщика и ПМов. Архивы находятся в директории /opt/printum_balancer/certificates.

Как проверить установку

Откройте страницу по адресу https://BALANCER_ADR:7000/.

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

Следующие шаги

Типовые ошибки

Ошибка Причина Решение
Страница состояния балансировщика (HAProxy) и ПринтМенеджеров загружается с ошибкой. Отсутствует или некорректен FQDN (hostname) в DNS для ВМ в составе конфигурации. Проверить наличие и корректность FQDN (hostname) в DNS для всех ВМ в составе отказоустойчивой конфигурации.

Связанные страницы


Revision #11
Created 2026-05-09 12:38:22 UTC by DD
Updated 2026-06-03 20:29:16 UTC by Михаил Рантович