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 выполните следующие шаги:
Установите репозиторий:
wget -O pgpro-repo-add.sh https://repo.postgrespro.ru/progate/progate/keys/pgpro-repo-add.sh sh pgpro-repo-add.sh
Установите пакет:
apt install progateРезультат установки будет следующим:
Созданы пользователь и группа с именем
progate.Утилиты procopy, prosync и procheck установлены в каталог
/opt/pgpro/progate/bin/.Добавлена служба progate.service, которая первоначально отключена.
Примечание
На этом этапе доступны только консольные утилиты procopy, prosync и procheck. Веб-интерфейс пока не готов к работе и требует дополнительной настройки в соответствии с инструкциями, приведёнными в Подразделе 4.3.4.
4.3.4. Первоначальная настройка #
Для начала работы с веб-интерфейсом ProGate выполните следующие шаги:
Создайте специальную схему.
Для работы веб-интерфейса ProGate требуется база данных PostgreSQL/Postgres Pro. В этой базе данных создайте специальную схему для хранения служебных данных веб-интерфейса. Например, создайте схему с именем
progate.Укажите базу данных для службы.
Чтобы указать базу данных, в файле окружения
/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.Схема содержится в указанной базе данных.
Перезапустите службу
progate.service:systemctl enable progate.service
[Необязательно] При наличии брандмауэра разрешите сетевые подключения через порт
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: 5m4.3.5. Вход в веб-приложение #
Для входа в веб-приложение используйте следующие учётные данные:
Логин:
progateПароль:
progate
4.3.6. Указание значений времени #
В ProGate значения времени в переменных окружения и параметрах конфигурации используют формат строк продолжительности (duration string) Golang. Например:
100 ms — 100 миллисекунд
5.5s — пять с половиной секунд
5m — пять минут
5h — пять часов
1h7m — один час и семь минут