4.3. Установка и первоначальная настройка #

В этом разделе описывается установка службы управления ProGate и первоначальная настройка. Служба управления ProGate представляет собой набор приложений, который обеспечивает работу ProGate через веб-интерфейс.

4.3.1. Требования к аппаратному и программному обеспечению #

Для работы службы управления ProGate требуется выделенный или виртуальный сервер со следующими минимальными характеристиками:

  • ЦП: 8 ядер

  • ОЗУ: 16 ГБ

  • Дисковое пространство: 100 ГБ

  • Сетевой интерфейс: 1 Гбит/с

ProGate работает в следующих операционных системах на базе Linux:

  • Альт 9/10/11, Альт СП релиз 10

  • Astra Linux 1.7/1.8

  • Debian 12/13

  • РЕД ОС МУРОМ 7.3/8.2

  • Red Hat Enterprise (RHEL) Linux 8/9

  • РОСА «ХРОМ» 2021.2

  • SUSE Linux Enterprise Server (SLES) 15

  • Ubuntu 22.04/24.04

4.3.2. Состав дистрибутива #

ProGate поставляется в виде пакета progate, который включает все необходимые зависимости.

В пакет progate входят следующие утилиты, которые также могут устанавливаться отдельно (например, чтобы использовать только консоль):

  • procopy (пакет)

  • prosync (пакет)

  • procheck (пакет)

Примечание

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

4.3.3. Процесс установки #

Для установки и конфигурирования службы управления ProGate выполните следующие шаги:

  1. Установите репозиторий:

    wget -O pgpro-repo-add.sh https://repo.postgrespro.ru/progate/progate/keys/pgpro-repo-add.sh
    sh pgpro-repo-add.sh
  2. Установите пакет:

    apt install progate
            

    Результат установки будет следующим:

    • Созданы пользователь и группа с именем progate.

    • Утилиты procopy, prosync и procheck установлены в каталог /opt/pgpro/progate/bin/.

    • Добавлена служба progate.service, которая первоначально отключена.

    Примечание

    На этом этапе доступны только консольные утилиты procopy, prosync и procheck. Веб-интерфейс пока не готов к работе и требует дополнительной настройки в соответствии с инструкциями, приведёнными в Подразделе 4.3.4.

4.3.4. Первоначальная настройка #

Для начала работы с веб-интерфейсом ProGate выполните следующие шаги:

  1. Создайте специальную схему.

    Для работы веб-интерфейса ProGate требуется база данных PostgreSQL/Postgres Pro. В этой базе данных создайте специальную схему для хранения служебных данных веб-интерфейса. Например, создайте схему с именем progate.

  2. Укажите базу данных для службы.

    Чтобы указать базу данных, в файле окружения /opt/pgpro/progate/etc/env_progate следующим образом отредактируйте строку под комментарием ниже (за подробностями обратитесь к Подразделу 4.3.4.1):

    # Строка подключения к PostgreSQL/Postgres Pro
    PROGATE_DB="postgres://user:password@host:5430/dbname?sslmode=disable&search_path=progate"

    В качестве значения search_path используйте имя созданной схемы.

    При составлении строки подключения должны быть выполнены условия:

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

    • Схема содержится в указанной базе данных.

  3. Перезапустите службу progate.service:

    systemctl enable progate.service
  4. [Необязательно] При наличии брандмауэра разрешите сетевые подключения через порт TCP/8081.

Выполнение всех шагов без ошибок означает, что служба управления ProGate успешно запущена. Веб-интерфейс ProGate доступен по адресу: http://<IP-адрес сервера>:8081. О том, как войти в веб-приложение, см. Подраздел 4.3.5.

4.3.4.1. Настройка ProGate с помощью файла окружения #

Содержимое файла окружения /opt/pgpro/progate/etc/env_progate выглядит примерно так:

# Порт для серверной части progate
PROGATE_HTTP_SERVER_PORT="8081"

# Серверная часть progate обслуживает статические файлы из этого каталога
PROGATE_HTTP_SERVER_STATIC_DIR="/opt/pgpro/progate/ui"

# Строка подключения к PostgreSQL/Postgres Pro
PROGATE_DB="postgres://user:password@host:5430/dbname?sslmode=disable&search_path=progate"

# Формат записей журнала: json | pretty
PROGATE_LOGS_FORMAT=pretty

# Уровень журналирования: debug | info | warn | error
PROGATE_LOGS_LEVEL=info

# Параметры аутентификации
# Длина секретного токена должна быть больше или равна 32 символам
PROGATE_AUTH_ACCESS_TOKEN_SECRET="mT-Y8ICZv-zhirL_j2K69vX_Upbo8B6rMKtplqv4U4I="
PROGATE_AUTH_ACCESS_TOKEN_LIFETIME="168h"
PROGATE_AUTH_REFRESH_TOKEN_LIFETIME="720h"

# Параметры подключения
PROGATE_CONNECTION_SERVICE_CHECK_CONNECTION_TIMEOUT="1.5s"

# Путь к бинарному файлу prosync
PROGATE_TRANSFER_WORK_PROSYNC_BIN="/opt/pgpro/progate/bin/prosync"

# Путь к бинарному файлу procopy
PROGATE_TRANSFER_WORK_PROCOPY_BIN="/opt/pgpro/progate/bin/procopy"

# Путь к каталогу с файлами конфигурации procopy/prosync и другими служебными файлами, используемыми серверной частью progate
PROGATE_TRANSFER_WORK_WORKING_DIR="/var/lib/progate/execution"

PROGATE_TRANSFER_WORK_WORK_POLL_INTERVAL="5s"
PROGATE_TRANSFER_WORK_TRANSFER_POLL_INTERVAL="5s"

PROGATE_PROCESS_RUNNER_WAIT_POLL_INTERVAL="5s"
PROGATE_PROCESS_RUNNER_MONITORING_START_POLL_INTERVAL="5s"
PROGATE_PROCESS_RUNNER_STOP_PROCESS_WAIT_TIMEOUT="5m"

О том, как устанавливать значения времени в переменных окружения, можно узнать из Подраздела 4.3.6.

4.3.4.2. Настройка ProGate с помощью файла конфигурации #

Помимо переменных окружения, ProGate можно настроить с помощью файла конфигурации .yaml. Передайте путь к этому файлу с флагом -c. Например:

/opt/pgpro/progate/bin/progate -c path/to/config.yaml

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

http_server:
  port: 8081
  static_dir: "/opt/pgpro/progate/ui"
db: "postgres://dbaas@localhost:5430/dbaas?sslmode=disable&search_path=progate"
logs:
  format: pretty
  level: info
auth:
  access_token_secret: "mT-Y8ICZv-zhirL_j2K69vX_Upbo8B6rMKtplqv4U4I="
  access_token_lifetime: 168h
  refresh_token_lifetime: 720h
connection_service:
  check_connection_timeout: 1.5s
transfer_work:
  prosync:
    bin: "/opt/pgpro/progate/bin/prosync"
  procopy:
    bin: "/opt/pgpro/progate/bin/procopy"
  working_dir: "/var/lib/progate/execution"
  work_poll_interval: 5s
  transfer_poll_interval: 5s
process_runner:
  wait_poll_interval: 5s
  monitoring_start_poll_interval: 5s
  stop_process_wait_timeout: 5m

4.3.5. Вход в веб-приложение #

Для входа в веб-приложение используйте следующие учётные данные:

  • Логин: progate

  • Пароль: progate

4.3.6. Указание значений времени #

В ProGate значения времени в переменных окружения и параметрах конфигурации используют формат строк продолжительности (duration string) Golang. Например:

  • 100 ms — 100 миллисекунд

  • 5.5s — пять с половиной секунд

  • 5m — пять минут

  • 5h — пять часов

  • 1h7m — один час и семь минут