Skip to main content

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

Цель

Page Type: Installation Component: ПринтМенеджер Domain: Infrastructure Product Versions: 4.x OS: Linux Status: Draft Related Components: HAProxy, ПринтМенеджер Установка балансировщика HAProxy Цель Установка балансировщика нагрузки HAProxy для кластерной конфигурации ПринтМенеджеров.

Предусловия

    Подготовлена база PostgreSQL и NFS-хранилищехранилище. Получены дистрибутивы Мониторинга, ПринтМенеджера и Балансировщика с файлами контрольных суммсумм.

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

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

      массовое развертывание с помощью скрипта; ручное развертывание.

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

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

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

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

        Сервер балансировщика должен иметь возможность подключаться к остальным серверам (ПринтМенеджеры и Мониторинг) по протоколу 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. Для удобства и безопасности рекомендуется:
                Создать отдельные служебные учетные записи Отключить запрос пароля для команд с использованием 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-хранилища​

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

                      Установка PostgreSQL для кластера Установка NFS-хранилища

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

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

                        Сгенерируйте или получите их у авторизованного центра сертификации (CA). Убедитесь, что пути к сертификатам (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 Шаг 2.
                          Проверьте контрольные суммы
                          sha512sum -c <имя_файла>.sha512
                          Шаг
                          3.
                          Распакуйте архив балансировщика
                          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/.

                                  .

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

                                  Next

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

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

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

                                    Ошибка Причина Решение: Страница состояния балансировщика (HAProxy) и ПринтМенеджеров загружается с ошибкой

                                    Причина: Отсутствует или некорректен FQDN (hostname) в DNS для ВМ в составе конфигурацииконфигурации.

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


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

                                      Подготовка к установке кластера Active-Active Установка PostgreSQL для кластера Установка NFS-хранилища Установка первого ПринтМенеджера в кластере Проверка корректности установки кластера