Установка балансировщика HAProxy
Цель
Page Type: Installation Component: ПринтМенеджер Domain: Infrastructure Product Versions: 4.x OS: Linux Status: Draft Related Components: HAProxy, ПринтМенеджер Установка балансировщика HAProxy Цель Установка балансировщика нагрузки HAProxy для кластерной конфигурации ПринтМенеджеров.
Предусловия
Варианты развёртывания схемы с балансировкой
Возможно два варианта развёртывания схемы балансировки:
Шаги установки Массового развёртывания схемы с балансировкой
Скрипт массового развертывания предназначен для автоматической установки и обновления балансировщика, мониторинга и серверов ПринтМенеджеров, обеспечивая минимизацию ручного вмешательства.
Требования для выполнения массового развертывания
Подключение по SSH
SSH.
Для исключения необходимости ввода паролей, настройте SSH-аутентификацию с использованием ключа:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
Скопируйте публичный ключ на все удаленные сервера:
ssh-copy-id root@<remote_server_IP>
Подтверждение доверия SSH-сертификатов
ssh root@<remote_server_IP>
Подтвердите добавление отпечатка сервера в файл доверенных хостов (~/.ssh/known_hosts).
Права пользователя
sudo, добавив в конфигурацию /etc/sudoers соответствующую
строку:
<username> ALL=(ALL) NOPASSWD:ALL
Проверка конфигурации
Убедитесь, что файл config.ini заполнен корректно:
[Balancer], [Monitoring], [PrintManager_1] и т.д.) присутствуют.
Значения переменных указаны без ошибок (путь к сертификатам, пароли, адреса и т.д.).
Если некоторые сервера уже настроены, используйте параметр SKIP = true для их пропуска при развёртывании.
Инструкция по запуску скрипта
Перейдите в директорию со скриптом массовой установки:
cd /path/to/script
Запустите скрипт:
sudo ./install_all_offline.sh
Если требуются детализированные логи для диагностики, используйте отладочный режим:
sudo DEBUG=1 ./install_all_offline.sh
Порядок установки
Шаг 1. Подготовка базы данных и NFS-хранилища
Подготовка описана в разделах:
Шаг 2. Получение сертификатов
Если используются собственные SSL-сертификаты:
SSL_CERT и SSL_KEY) корректно указаны в конфигурационном файле.
Если сертификаты корневого центра сертификации требуются, укажите путь к ним в SSL_CERT_CA.
Шаг 3. Запуск установки
Скопируйте дистрибутивы на сервер балансировщика
Скопируйте на сервер балансировщика дистрибутивы Мониторинга, ПринтМенеджера и Балансировщика вместе с файлами контрольных сумм:
printmanager-X1.Y1.Z1.tar.gz
printmanager-X1.Y1.Z1.tar.gz.sha512
printum-X2.Y2.Z2.tar.gz
printum-X2.Y2.Z2.tar.gz.sha512
printum-balancer-X3.Y3.Z3.tar.gz
printum-balancer-X3.Y3.Z3.tar.gz.sha512
Проверьте контрольные суммы
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.
Проверьте корректность установки
Используйте раздел Проверка корректности установки кластера.
Шаги установки схемы балансировщика в ручном режиме
Шаг 1. Скопируйте дистрибутивы на сервер балансировщика
Скопируйте на сервер балансировщика дистрибутивы Мониторинга, ПринтМенеджера и Балансировщика вместе с файлами контрольных сумм:
printmanager-X1.Y1.Z1.tar.gz
printmanager-X1.Y1.Z1.tar.gz.sha512
printum-X2.Y2.Z2.tar.gz
printum-X2.Y2.Z2.tar.gz.sha512
printum-balancer-X3.Y3.Z3.tar.gz
printum-balancer-X3.Y3.Z3.tar.gz.sha512
Шаг 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>
где:
<POSTGRES_LOGIN> — логин пользователя с необходимыми разрешениями (запись, удаление, чтение, обновление).
POSTGRES_PASSWORD> — пароль пользователя POSTGRES_LOGIN.
<DB_HOST> — реальный адрес базы или балансировщика кластера баз.
<PORT> — порт для подключения к базе.
<BASE_NAME> — Имя базы.
<POSTGRES_SCHEMA> — схема базы данных, указывать, если не используется схема public.
<DATABASE_TABLESPACE> — Табличное пространство.
<NFS_ADDR> — IP-адрес или доменное имя NFS сервера.
<NFS_FOLDER_PATH> — путь директории NFS сервера.
Если вы настроили NFS через туннель stunnel, то обязательно укажите:
export NFS_TLS=true
Если порт stunnel отличается от 20490, то укажите еще порт:
export NFS_STUNNEL_PORT=<NFS_STUNNEL_PORT>
где:
NFS_STUNNEL_PORT - порт для stunnel
Также вы можете указать логин и пароль для страницы HAProxy:
export STATS_USER=<STATS_USER>
export STATS_PASSWORD=<STATS_PASSWORD>
Если пароль и логин не указан, то будет установлен логин "admin"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>
где:
<BALANCER_ADR> — IP адрес или доменное имя балансировщика.
<PM_1> — IP адрес или доменное имя первого ПринтМенеджер.
<PM_2> , <PM_3> , … — IP адрес или имя Ожидаемый результат
Если установка прошла без ошибок, то в консоли будет выведено сообщение об успехе и http http-адрес для доступа к панели HAProxy:
Статус HAProxy доступен по адресу: https://BALANCER_ADR:7000/
Во время установки балансировщика будут автоматически записаны настройки для балансировщика и ПМов. Архивы находятся в директории /opt/printum_balancer/certificates.
Как проверить установку
Откройте страницу по адресу https://BALANCER_ADR:7000/.
Вы увидите несколько групп строк, группы отделяются заголовками бордового цвета. Каждая группа обозначает часть системы и её статус. После установки всех ПМов строки станут зелеными.
Следующие stepsшаги
Типовые ошибки
Ошибка Причина Решение: Страница состояния балансировщика (HAProxy) и ПринтМенеджеров загружается с ошибкой
Причина: Отсутствует или некорректен FQDN (hostname) в DNS для ВМ в составе конфигурацииконфигурации.
Решение: Проверить наличие и корректность FQDN (hostname) в DNS для всех ВМ в составе отказоустойчивой конфигурацииконфигурации.