Инструкция по установке компонентов

Процесс установки системы 5А происходит в несколько этапов:

  1. Сначала происходит подготовка инсталлятора к процедуре развёртывания, которая включает в себя распаковку, настройку прав и формирование файла конфигурации.

  2. Далее выберите способ развёртывания:

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

После успешной установки перейдите в интерфейс системы 5А и создайте необходимые объекты внутри системы.

ℹ️

Каждый компонент системы 5А может быть развёрнут как на виртуальном сервере, так и на физическом сервере. Данное руководство предполагает, что развёртывание производится на виртуальных серверах.

Допустима установка компонентов системы 5А как отдельно на каждый виртуальный сервер, так и несколько компонентов на одном виртуальном сервере.

Распаковка файлов

  1. Войдите на сервер развёртывания под подходящей учётной записью пользователя.

  2. Загрузите файл дистрибутива системы 5А installator.tar.gz или смонтируйте диск с ним.

  3. Разархивируйте файл дистрибутива системы 5А:

    tar -zxf installator.tar.gz
  4. Настройте права для запуска файла инсталлятора install.sh (для способа 1):

    chmod +x install.sh

    Для способа 2 права на installer-ui выставлять не требуется.

ℹ️

После распаковки в директории появятся файлы:

  • install.sh — скрипт для установки через командную строку;
  • installer-ui — исполняемый файл для запуска веб-интерфейса мастера установки;
  • repo — директория с компонентами системы;
  • inventory.yml — файл конфигурации (заполняется вручную при способе 1 или автоматически при способе 2).

Способ 1. Установка через файл конфигурации (inventory.yml)

Этот способ предполагает ручное заполнение файла inventory.yml и запуск инсталлятора из командной строки.

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

Заполните файл конфигурации inventory.yml.

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

Файл конфигурации состоит из следующих разделов:

Глобальные параметры подключения

В секции all.vars укажите данные пользователя, под которым будут выполняться действия по развёртыванию компонентов системы 5А.

all:
  vars:
    ansible_user: user
    ansible_become_pass: P@$$w0rd
  • ansible_user — логин пользователя.
  • ansible_become_pass — пароль пользователя.

Основные компоненты системы

Секция Основные компоненты системы, которая содержит описание для развёртывания следующих компонентов:

  • backend — бэкенд системы 5А;
  • frontend — фронтенд системы 5А;
  • postgres — база данных системы 5А;
  • orchestrator — оркестратор системы 5А;
  • monitoring — средства мониторинга системы 5А;
  • redis — база данных Redis, обеспечивающая консистентность GSLB-серверов и корректную работу алгоритмов в правилах, определяющих логику обработки DNS-запросов.
⚠️

Каждый компонент системы описывается как отдельный сервер (хост). Обязательным условием для установки компонента системы является указание IP-адреса целевого сервера в параметре ansible_host. Если адрес не будет указан у компонента, то он не будет установлен в ходе общей установки системы.

Для средств мониторинга рекомендуется использование адреса IPv4.

all:
  hosts:
    backend:
      ansible_host: backend.example.com
      initial_user_login: admin
      initial_user_password: P@$$w0rd
      # control_sync_peer_host: <IP-адрес_синхронизации>   # IP-адрес для синхронизации между бэкендами в кластере
      # internal_ca_file: "sub_ca.crt"                     # имя файла сертификата в repo/certs/ (если пусто, то генерируется при первой установке)
      # internal_ca_key_file: "sub_ca.key"                 # имя файла ключа в repo/certs/
 
    frontend:
      ansible_host: frontend.example.com
      # frontend_fqdn: "admin.5a.internal"   # FQDN веб-интерфейса
      # frontend_https_port: 8443            # порт веб-интерфейса
      # frontend_cert_file: "web.crt"        # имя файла сертификата в repo/certs/ (если пусто, то генерируется при первой установке)
      # frontend_key_file: "web.key"         # имя файла ключа в repo/certs/
 
    postgres:
      ansible_host: postgres.example.com
      postgres_user: postgres
      postgres_password: P@$$w0rd
      # postgres_port: 5432                  # значение по умолчанию
 
    orchestrator:
      ansible_host: orchestrator.example.com
 
    monitoring:
      ansible_host: monitoring.example.com
 
    redis:
      ansible_host: redis.example.com
      redis_password: P@$$w0rd
      # redis_port: 6379                     # значение по умолчанию
  • backend — настройки бэкенда системы 5А:

    • ansible_host — IP-адрес или домен бэкенда.

    • initial_user_login — логин для первичного пользователя системы 5А, который будет автоматически создан при её развёртывании. Этот пользователь получает права администратора и предназначен для входа в систему 5А и её начальной настройки.

    • initial_user_password — пароль для первичного пользователя, указанного в initial_user_login. В целях безопасности рекомендуется изменить пароль после первого входа в систему 5А.

      ⚠️

      Важно: Пароль должен соответствовать следующим требованиям безопасности:

      • Длина:

        • Не менее 12 символов для обычных пользователей.
        • Не менее 14 символов для администраторов, т.е. пользователей со включённой опцией "Полный доступ".
        • Максимальная длина — 72 символа.
      • Сложность: пароль должен содержать как минимум три из четырех категорий символов:

        • прописные буквы (A–Z),
        • строчные буквы (a–z),
        • цифры (0–9),
        • специальные символы (!@#$%^&*()_+-=[]<>?,. и т. д.).
      • Запрещено:

        • Использовать пустой пароль.
        • Включать в пароль имя пользователя или его часть. Если имя пользователя содержит более 3 символов, то запрещена любая подстрока из 6 последовательных символов из него. Например, для пользователя testing недопустим пароль вида testin123.
    • control_sync_peer_host (опционально) — IP-адрес для синхронизации между бэкендами в кластере. Используется для обеспечения согласованности данных между несколькими экземплярами бэкенда.

    • internal_ca_file (опционально) — имя файла CA-сертификата в каталоге repo/certs/. Если не указан, система сгенерирует самоподписанный сертификат при первой установке.

    • internal_ca_key_file (опционально) — имя файла приватного ключа CA в каталоге repo/certs/. Если не указан, система сгенерирует ключ при первой установке.

  • frontend — настройки фронтенда системы 5А:

    • ansible_host — IP-адрес или домен фронтенда.
    • frontend_fqdn (опционально) — полное доменное имя для веб-интерфейса (FQDN). Используется для генерации сертификатов и корректной работы HTTPS.
    • frontend_https_port (опционально) — порт для HTTPS-доступа к веб-интерфейсу. Если не указан, используется порт 8443.
    • frontend_cert_file (опционально) — имя файла TLS-сертификата в каталоге repo/certs/. Если не указан, система сгенерирует самоподписанный сертификат при первой установке.
    • frontend_key_file (опционально) — имя файла приватного ключа TLS-сертификата в каталоге repo/certs/. Если не указан, система сгенерирует ключ при первой установке.
  • postgres — настройки базы данных PostgreSQL:

    • ansible_host — IP-адрес или домен базы данных.
    • postgres_user — логин пользователя базы данных.
    • postgres_password — пароль пользователя базы данных.
    • postgres_port (опционально) — порт для подключения к PostgreSQL. Если не указан, используется порт 5432.
  • orchestrator — настройки оркестратора:

    • ansible_host — IP-адрес или домен оркестратора.
  • monitoring — настройки средств мониторинга:

    • ansible_host — IP-адрес или домен средств мониторинга.
  • redis — настройки базы данных Redis:

    • ansible_host — IP-адрес или домен базы данных Redis.
    • redis_password — пароль для доступа к Redis.
    • redis_port (опционально) — порт для подключения к Redis. Если не указан, используется порт 6379.

Подключаемые модули

Секция Подключаемые модули, которая содержит описание для развёртывания модулей системы:

  • 5a-agent — модуль балансировки (агент) системы 5А. Какие функции выполняет агент, задаётся его ролями: SLB, GSLB и сетевой агент. На одном хосте можно включить любое их сочетание.
  • snmp — (опционально) секция snmp позволяет настроить SNMP-агента на серверах системы балансировки для сбора метрик и интеграции с системами мониторинга (например, Zabbix, Prometheus).
  • lldp — (опционально) секция lldp позволяет настроить демон LLDP, который рассылает информацию о хосте соседним сетевым устройствам (коммутаторам, маршрутизаторам) и получает от них аналогичные данные.
⚠️

Система поддерживает установку нескольких модулей одного типа, при этом каждый модуль системы описывается как отдельный сервер (хост). Обязательными условиями для установки модуля являются:

  • указание IP-адреса целевого сервера в параметре ansible_host. Если адрес не будет указан, модуль не будет установлен.
  • для модулей из группы 5a-agent необходимо указать:
    • какие функции запускать:
      • run_slb: true — если агент будет использоваться для L4/L7 балансировки;
      • run_gslb: true — если агент будет использоваться для GSLB;
      • run_net: true — если агент будет выполнять функции сетевого агента.
    • идентификаторы кластеров:
      • slb_cluster_id — название SLB-кластера, к которому будет принадлежать агент. Если кластер с таким именем ещё не существует, он будет создан автоматически. Название может быть произвольной строкой (например, «slb-cluster-1»). Обязателен, если run_slb: true.
      • gslb_cluster_id — название GSLB-кластера. Обязателен, если run_gslb: true.
      • адреса хранилища Redis, в котором GSLB-серверы хранят общее состояние:
        • redis_address — сетевой адрес сервера Redis в формате адрес:порт. Обязателен, если run_gslb: true.
        • redis_password — пароль доступа к Redis. Без него инсталлятор остановит установку с ошибкой.
    • net_cluster_id — название кластера для агента, у которого включена только роль сетевого агента (run_net: true, остальные роли выключены). Когда на хосте есть также SLB или GSLB, сетевой агент присоединяется к их кластеру и отдельный идентификатор не нужен.
  • разделение управления и рабочего трафика задаётся параметрами network_preset, data_ip и data_interface — см. Разделение управления и рабочего трафика.
children:
  5a-agent:
    hosts:
      node1:
        ansible_host: 123.123.123.123
        run_slb: true
        run_gslb: true
        run_net: true
        slb_cluster_id: "slb-example-cluster-id"
        gslb_cluster_id: "gslb-example-cluster-id"
      # Можно добавить несколько агентов, например:
      node2:
        ansible_host: 123.123.123.124
        data_ip: 10.10.10.12          # адрес рабочего трафика
        data_interface: eth1          # интерфейс рабочего трафика
        run_slb: true
        run_gslb: false
        run_net: true
        slb_cluster_id: "slb-example-cluster-id"
 
      # Хост только с ролью сетевого агента:
      node3:
        ansible_host: 123.123.123.126
        run_slb: false
        run_gslb: false
        run_net: true
        net_cluster_id: "slb-example-cluster-id"
 
#  snmp:
#    hosts:
#      snmp1:
#        ansible_host:
#        snmpv3_user: snmpadmin
#        snmpv3_auth_pass: SuperSecretAuth
#        snmpv3_priv_pass: UltraSecretPriv
#        snmp_udp_port: 161
#        sys_location: "Server Room 1"
#        sys_contact: "ops@example.com"
#
#  lldp:
#    hosts:
#      lldp1:
#        ansible_host:
#        lldp_interfaces: ""
#        lldp_management_ip: ""
#        lldp_snmp_socket: "udp:127.0.0.1:161"
#        lldp_hidden_neighbor_filter: 15

Параметры модулей балансировки из списков ниже необязательны: значения по умолчанию подходят для типового развёртывания. Задавайте их в секции vars группы 5a-agent, если настройка должна действовать на все агенты, или в конкретном хосте — если только на него.

Для настройки портов управления укажите значения для параметров:

  • agent_grpc_port — порт gRPC, на котором агент получает конфигурацию от оркестратора, по умолчанию 50051.
  • agent_http_port — порт HTTP, на котором агент отвечает на проверки состояния и отдаёт метрики, по умолчанию 50050. Если меняете порт, синхронно измените его в правилах firewall, см. Требования к серверам.

Для настройки балансировки укажите значения для параметров:

  • slb_dns_resolver_list — IP-адреса DNS-серверов, которые балансировщик использует для разрешения имён целевых хостов. Список применяется как на уровне L4 (балансировка по портам), так и на уровне L7 (HTTP/HTTPS/gRPC). Указываются через запятую без пробелов, например 203.0.113.6,203.0.113.7. Тот же параметр задаётся в формах добавления агента и добавления кластера в поле DNS-серверы.
  • slb_hc_interval — интервал активной проверки доступности агентов внутри кластера балансировки, по умолчанию 1s. Увеличение интервала снижает нагрузку от взаимных проверок в больших кластерах.
  • slb_restart_after_min и slb_restart_after_max — границы интервала, по которому агент перезапускает балансировщик, по умолчанию 3s и 1m.
  • slb_stabilize_after — время, по которому агент ждёт после запуска балансировщика, прежде чем считать его работающим, по умолчанию 30s. Увеличьте значение, если балансировщик запускается и сразу завершается: интервал между перезапусками растёт.
  • gslb_ip_hash_ttl — время в секундах, на которое правило IP Hash удерживает клиента на одном и том же сервере, по умолчанию 300. Срок общий для всех GSLB-серверов кластера, поэтому задавайте значение одинаковым.
  • gslb_rtt_interval — как часто GSLB-сервер пересчитывает время отклика до серверов, по умолчанию 3s.
  • gslb_rtt_timeout — сколько ждать ответа при замере времени отклика, по умолчанию 1s. Если каналы до серверов медленные, увеличьте значение: иначе замер не успевает завершиться, сервер получает худшее время отклика, и правило RTT направит трафик на другой сайт.

Для настройки журналирования укажите значения для параметров:

  • log_level — уровень журналирования агента: fatal, error, warn, info или debug. По умолчанию info.
  • log_format — формат вывода журнала в поток STDOUT: console или json. По умолчанию console.
  • syslog_servers — адреса syslog-серверов, в которые агент отправляет журнал. Каждый адрес указывается в формате protocol://host:port, где вместо protocol указывается tcp или udp. Принимает список значений.
  • otlp — адрес OTLP-сервера в формате host:port. Включает отправку данных распределённой трассировки, например в Jaeger.

Для настройки snmp укажите значения для параметров:

  • snmpv3_user — имя пользователя SNMPv3. Используется для аутентификации при запросах к агенту.
  • snmpv3_auth_pass — пароль для аутентификации (Authentication Passphrase).
  • snmpv3_priv_pass — пароль для шифрования (Privacy Passphrase).
  • snmp_udp_port — UDP-порт, на котором работает SNMP-агент.
  • sys_location — физическое расположение устройства, которое отображается в MIB.
  • sys_contact — контактная информация администратора (email или имя), которая отображается в MIB.

Агент отвечает по SNMPv3: инсталлятор создаёт пользователя с аутентификацией SHA и шифрованием AES, доступ по SNMPv1 и SNMPv2c не настраивается. В SNMP-менеджере укажите то же имя пользователя и пароли, выбрав протокол аутентификации SHA и протокол шифрования AES.

Для настройки lldp укажите значения для параметров:

  • lldp_interfaces — список сетевых интерфейсов, на которых будет работать LLDP. Указывается через запятую, например: "eth0,eth1". Если параметр пустой, LLDP активируется на всех доступных интерфейсах.
  • lldp_management_ip — IP-адрес управления, который будет объявляться в TLV Management Address пакетов LLDP. Если не указан, используется первый IP-адрес из доступных интерфейсов.
  • lldp_snmp_socket — адрес сокета SNMP-агента, к которому подключается LLDP для предоставления своих данных через MIB. Обычно указывается на локальный SNMP-демон с тем же портом, что указан в блоке snmp в параметре snmp_udp_port.
  • lldp_hidden_neighbor_filter — время в секундах, в течение которого сосед считается "скрытым", но ещё не удалён из таблицы. После истечения этого времени сосед удаляется, если не было новых объявлений.

Запуск инсталлятора

После распаковки файлов и заполнения файла конфигурации запустите инсталлятор — скрипт install.sh.

В качестве первого аргумента укажите тип установки компонентов:

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

./install.sh all /home/johndoe/.ssh/id_rsa

Дождитесь окончания работы инсталлятора.

⚠️

Важно: Не удаляйте файл конфигурации inventory.yml после завершения развёртывания системы. Он необходим для повторных запусков инсталлятора после изменения набора подключаемых модулей, а также для удаления системы.


Способ 2. Установка через веб-интерфейс (UI-инсталлятор)

Этот способ предполагает пошаговую установку через мастер в веб-интерфейсе. Инсталлятор автоматически заполнит файл конфигурации inventory.yml на основе введённых данных.

  1. Выполните распаковку файлов.

  2. Из директории с распакованным дистрибутивом выполните команду:

    ./installer-ui
  3. В терминале появится сообщение с адресом для доступа к мастеру установки. Откройте указанный адрес в браузере.

  4. Следуйте пошаговым инструкциям мастера установки.

Подробное описание всех шагов мастера установки приведено в отдельной статье:

Установка системы через веб-интерфейс (UI-инсталлятор)


Добавление модулей балансировки

Новый модуль балансировки (агент) можно добавить в систему 5А двумя способами:

ℹ️

Добавление модулей доступно как для систем, установленных через файл конфигурации, так и через UI-инсталлятор.

Через инсталлятор

  1. Войдите на сервер развёртывания под подходящей учётной записью пользователя.

  2. Перейдите в директорию с распакованным ранее дистрибутивом системы 5А.

  3. Отредактируйте файл конфигурации inventory.yml, добавив в него один или несколько новых модулей балансировки в разделе all.children.5a-agent.hosts, см. Подключаемые модули. Например:

    all:
     children:
       5a-agent:
         hosts:
           node1:
             ansible_host: 123.123.123.123
             run_slb: true
             run_gslb: false
             run_net: true
             slb_cluster_id: my-slb-cluster
           node2:
             ansible_host: 123.123.123.124
             run_slb: true
             run_gslb: false
             run_net: true
             slb_cluster_id: my-slb-cluster
           node3:
             ansible_host: 123.123.123.125
             run_slb: true
             run_gslb: true
             run_net: true
             slb_cluster_id: my-slb-cluster
             gslb_cluster_id: my-gslb-cluster
  4. Откройте терминал и запустите инсталлятор install.sh.

    В качестве первого аргумента укажите agent.

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

    ./install.sh agent /home/johndoe/.ssh/id_rsa

Через утилиту agent

  1. Подготовьте целевой сервер согласно требованиям.

  2. Войдите на целевой сервер под подходящей учётной записью пользователя.

  3. Распакуйте дистрибутив системы 5А или смонтируйте директорию с ним.

  4. Запустите исполняемый файл агента agent с набором параметров:

    • --orchestrator-address — сетевой адрес оркестратора, который был указан при развёртывании системы 5А.
    • --slb-cluster-id — название кластера балансировки, к которому будет добавлен модуль балансировки. Если кластер с таким названием отсутствует, он будет создан.
    • --bind-address — сетевой адрес сервера агента. Может быть указан IP одного из доступных извне сетевых интерфейсов на вашем сервере.
    • --bind-grpc-port — порт для gRPC-сервера агента.
    • --run-slb — включить функционал модуля балансировки.
    ℹ️

    При удалённом запуске файла агента нужно в параметре --bind-address указать IP того сервера, на котором должен быть балансировщик, и на этот сервер по указанному IP можно попасть извне. Например, IP 127.0.0.1, который привязан к интерфейсу lo, не подойдёт.

    • --log-level — максимальный уровень критичности событий, фиксируемых в системном журнале. Доступные варианты: fatal, error, warn, info, debug.
    • --log-format — формат вывода системного журнала в поток STDOUT. Доступные варианты: json, console.
    • --log-syslog-servers — сетевой адрес и порт syslog-сервера, на котором хранятся данные системного журнала. Указывается в формате protocol://host:port. В качестве протокола укажите tcp или udp. Можно указать несколько серверов через запятую.
    • --otlp-address — сетевой адрес и порт OTLP-сервера. Включает использование системы распределённого трассирования (например, Jaeger).
    • --install-as-system-unit — установить агент как systemd-юнит и запустить как сервис.

    Пример команды:

    sudo ./agent \
      --bind-address agent-3.example.com \
      --bind-grpc-port 50051 \
      --orchestrator-address orchestrator.example.com:50052 \
      --slb-cluster-id my-slb-cluster \
      --log-level info \
      --log-format console \
      --log-syslog-servers udp://203.0.113.255:1514 \
      --run-slb
    ℹ️

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

Файл конфигурации агента

Установленный агент хранит настройки в файле /etc/5a/agent.yml. Это текстовый файл в формате YAML: в нём записаны те же параметры, что и в командной строке, но с полными именами и в виде вложенных разделов.

Файл не входит в дистрибутив, и агент его не создаёт. Его создаёт инсталлятор на целевом сервере — из параметров, заданных в inventory.yml, см. Подключаемые модули. Агент файл только читает и никуда в него не пишет. Путь к файлу указан в команде запуска службы: ExecStart=/usr/local/bin/5a-agent -c /etc/5a/agent.yml. При ручном запуске агента путь к файлу передаётся параметром -c, а настройки, которых в файле нет, — параметрами командной строки.

Перед правками файла учтите, что инсталлятор переписывает его целиком при каждом запуске, и всё, что инсталлятор в него не записывает, из файла исчезает. Поэтому у любого параметра два разных пути:

  • Параметр есть в inventory.yml. Задавайте его в inventory.yml и запускайте инсталлятор повторно. Настройка переживёт и повторный запуск инсталлятора, и установку обновления.
  • Параметра в inventory.yml нет. Правьте /etc/5a/agent.yml напрямую. Настройка действует, пока инсталлятор не запустят снова: после повторного развёртывания или установки обновления файл создаётся заново, и правку нужно внести ещё раз.

Второй путь касается трёх групп параметров:

  • net.transparency — параметры маршрутизации прозрачного трафика: имя таблицы nftables, метка fwmark, номер таблицы маршрутизации и приоритет правила ip rule. Значения по умолчанию рассчитаны на хост, где эти метки и таблицы больше никто не использует. Описание и порядок проверки — в статье Настройка IP Transparency.
  • net.keepalived.garp — параметры анонсов GARP в состоянии MASTER. Нужны, если после переключения VRRP часть клиентов продолжает отправлять трафик на прежний адрес. Описание — в статье Настройка VRRP.
  • slb.traffic_copy_buffer — пределы временного хранения копий трафика, общие для ICAP-анализа и зеркалирования: memory_limit_mb — лимит памяти, disk_limit_mb — лимит временных файлов, max_single_copy_mb — размер одной копии, max_body_in_memory_kb — порог хранения тела в памяти, min_free_disk_percent — минимальный свободный остаток диска. Нулевые значения означают автоматический расчёт по ресурсам узла. Лимит max_single_copy_mb ограничивает предел тела зеркальной копии, см. Зеркалирование трафика сервиса.

После правки перезапустите службу агента:

sudo systemctl restart 5a-agent
⚠️

Важно: агент не запустится, если значение параметра выходит за допустимый диапазон. Если служба не стартовала, причина — в её журнале: journalctl -u 5a-agent. После запуска агент должен появиться в списке на вкладке Агенты.

Добавление GSLB-сервера

  1. Подготовьте целевой сервер согласно требованиям.

  2. Войдите на целевой сервер под подходящей учётной записью пользователя.

  3. Распакуйте дистрибутив системы 5А или смонтируйте директорию с ним.

  4. Запустите исполняемый файл агента agent с включённой ролью GSLB:

    • --orchestrator-address — сетевой адрес оркестратора, который был указан при развёртывании системы 5А.
    • --gslb-cluster-id — название кластера балансировки, к которому будет добавлен GSLB-сервер. Если кластер с таким названием отсутствует, он будет создан.
    • --bind-address — сетевой адрес сервера для установки GSLB-сервера.
    • --bind-grpc-port — порт gRPC-сервера агента.
    • --gslb-net-dns-port — порт, на котором агент принимает DNS-запросы. По умолчанию 53.
    • --gslb-net-dns-address — сетевой адрес, на котором агент принимает DNS-запросы. Параметр опциональный.
    • --log-level — максимальный уровень критичности событий, фиксируемых в системном журнале. Доступные варианты: fatal, error, warn, info, debug.
    • --log-syslog-servers — сетевой адрес и порт syslog-сервера, на котором хранятся данные системного журнала. Указывается в формате protocol://host:port. В качестве протокола укажите tcp или udp. Можно указать несколько серверов через запятую.
    • --gslb-redis-address — сетевой адрес сервера в формате адрес:порт, на котором развёрнута база данных Redis, обеспечивающая консистентность GSLB-серверов и корректную работу алгоритмов в правилах, определяющих логику обработки DNS-запросов.
    • --gslb-redis-password — пароль для доступа к базе данных Redis.
    • --install-as-system-unit — установить агент как systemd-юнит и запустить как сервис. Параметр опциональный.
    • --run-gslb — включить функционал GSLB.

    Параметры перечисляются через пробел, перед названием параметра указывается --, значение параметра указывается в кавычках.

    Пример запуска:

    sudo ./agent \
      --orchestrator-address "orchestrator.example.com:50052" \
      --gslb-cluster-id "my-gslb-cluster" \
      --bind-address "203.0.113.8" \
      --bind-grpc-port 50051 \
      --gslb-net-dns-port 53 \
      --log-level "info" \
      --log-syslog-servers "udp://172.27.1.16:1514" \
      --gslb-redis-address "203.0.113.20:6379" \
      --gslb-redis-password "P@ssw0rd" \
      --run-gslb
    ℹ️

    Сгенерировать команду можно через веб-интерфейс с помощью формы добавления GSLB сервера.

    При развёртывании через инсталлятор GSLB-сервер добавляется в группу all.children.5a-agent.hosts с параметрами run_gslb: true, gslb_cluster_id: <id>, redis_address: <адрес:порт> и redis_password: <пароль>. Без адреса и пароля Redis инсталлятор останавливает установку с ошибкой. Полный список параметров модуля — в разделе Подключаемые модули.


Проверка развёртывания

Для первичной проверки корректности развёртывания системы 5А выполните следующие шаги:

  1. В консоли выполните GET-запрос /healthcheck к бэкенду. Используйте IP-адрес, указанный в параметре all.hosts.backend.ansible_host, см. Основные компоненты системы.

    curl http://backend.example.com:9000/api/v1/healthcheck

    Убедитесь, что для каждого сервера в полученном ответе в поле success указано значение true.

  2. В консоли выполните GET-запросы /gslb/health к каждому из серверов GSLB. Используйте IP-адреса, указанные в параметрах all.children.5a-agent.hosts.*.ansible_host, см. Подключаемые модули.

    curl http://203.0.113.8:50050/gslb/health

    Убедитесь, что для каждого сервера в полученном ответе в поле success указано значение true.

  3. В браузере откройте фронтенд 5А. Используйте IP-адрес и порт, указанные в параметрах all.hosts.frontend, см. Основные компоненты системы.

  4. Войдите в систему, используя логин и пароль из настроек компонента backend, см. Основные компоненты системы.

    ⚠️

    В случае пяти неудачных попыток ввода пароля аккаунт будет временно заблокирован для защиты от перебора паролей. Блокировка автоматически снимается через 10 минут. Повторные попытки авторизации с неверным паролем приведут к продлению срока блокировки.

  5. В боковом меню выберите Состояние системы.

    Убедитесь, что для каждого компонента указан статус OK.

  6. В боковом меню выберите База знаний.

    Убедитесь, что встроенная база знаний о системе доступна.

  7. Перейдите по адресу https://<Адрес_сервера_бэкенда>:8443/api/v1/docs.

    Убедитесь, что справочник API доступен.


Удаление системы

Для удаления системы 5А выполните следующие шаги:

  1. Войдите на сервер развёртывания под учётной записью, от которой выполнялась установка.

  2. Перейдите в директорию с распакованным дистрибутивом (там, где находится файл install.sh).

  3. Выполните команду удаления, передав пароль SSH для доступа к целевым серверам:

    SSH_PASSWORD=<пароль> ./install.sh uninstall

    Где <пароль> — пароль пользователя, используемый для SSH-подключения к серверам.

⚠️

Важно: команда удаления остановит и удалит все компоненты системы 5А с целевых серверов. Данные, созданные в процессе работы системы (конфигурации, логи, пользовательские настройки), будут удалены без возможности восстановления. Перед выполнением убедитесь, что вы создали резервные копии необходимых данных.

После завершения удаления система будет полностью деинсталлирована.


Дальнейшие шаги

Для полноценного запуска системы 5А администратору нужно: