В этом разделе описывается установка службы управления ProGate и первоначальная настройка. Служба управления ProGate представляет собой набор приложений, который обеспечивает работу ProGate через веб-интерфейс.
Для работы службы управления 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
ProGate поставляется в виде пакета progate, который включает все необходимые зависимости.
В пакет progate входят следующие утилиты, которые также могут устанавливаться отдельно (например, чтобы использовать только консоль):
procopy (пакет)
prosync (пакет)
procheck (пакет)
procheck пока не предоставляется для работы через веб-интерфейс и поэтому может использоваться только как консольная утилита.
Для установки и конфигурирования службы управления 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.
Для начала работы с веб-интерфейсом ProGate выполните следующие шаги:
Создайте базу данных, пользователя и схему.
Для работы веб-интерфейса ProGate требуется база данных PostgreSQL/Postgres Pro. В этой базе данных создайте специальную схему для хранения служебных данных веб-интерфейса и пользователя для работы с этой схемой. Например, создайте базу данных с именем dbname, в ней схему progate и пользователя user с паролем password:
CREATE USER user WITH PASSWORD 'password'; CREATE SCHEMA progate AUTHORIZATION user; GRANT ALL PRIVILEGES ON SCHEMA progate TO user; GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA progate TO user; ALTER DEFAULT PRIVILEGES IN SCHEMA progate GRANT ALL PRIVILEGES ON TABLES TO user; GRANT USAGE, CREATE ON SCHEMA progate TO user; GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA progate TO user;
Укажите базу данных для службы.
Чтобы указать базу данных, в файле окружения /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 start progate.service systemctl enable progate.service
(Необязательно) При наличии брандмауэра разрешите сетевые подключения через порт TCP/8081.
Выполнение всех шагов без ошибок означает, что служба управления ProGate успешно запущена. Веб-интерфейс ProGate доступен по адресу: http://<IP-адрес сервера>:8081. О том, как войти в веб-приложение, см. Подраздел 4.3.5.
Для правильной работы службы в автоматически созданном файле окружения /opt/pgpro/progate/etc/env_progate отредактируйте переменную PROGATE_DB. В ней укажите свои значения user, password, host, port, dbname и search_path. Значение search_path должно содержать имя схемы для хранения служебной информации. Содержимое файла окружения может быть примерно таким:
# Порт для серверной части 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" # Путь к бинарному файлу 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"
О том, как устанавливать значения времени в переменных окружения, можно узнать из Подраздела 4.3.6.
Помимо переменных окружения, 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
transfer_work:
prosync:
bin: "/opt/pgpro/progate/bin/prosync"
procopy:
bin: "/opt/pgpro/progate/bin/procopy"
working_dir: "/var/lib/progate/execution"Параметры конфигурации описаны в Таблице 4.8.
Таблица 4.8. Содержимое файла конфигурации ProGate
| Параметр конфигурации | Переменная окружения | Описание | Пример |
|---|---|---|---|
http_server.port | PROGATE_HTTP_SERVER_PORT | Порт для серверной части ProGate | 8081 |
http_server.static_dir | PROGATE_HTTP_SERVER_STATIC_DIR | Серверная часть ProGate обслуживает статические файлы из этого каталога | /opt/pgpro/progate/ui |
db | PROGATE_DB | Строка подключения к PostgreSQL/Postgres Pro | postgres://user:password@host:port/dbname?sslmode=disable?search_path=progate |
logs.format | PROGATE_LOGS_FORMAT | Формат записей журнала: json / pretty | pretty |
logs.level | PROGATE_LOGS_LEVEL | Уровень журналирования: debug / info / warn / error | info |
auth.access_token_secret | PROGATE_AUTH_ACCESS_TOKEN_SECRET | Длина секретного токена. Должна быть не менее 32 символов | mT-Y8ICZv-zhirL_j2K69vX_Upbo8B6rMKtplqv4U4I= |
auth.access_token_lifetime | PROGATE_AUTH_ACCESS_TOKEN_LIFETIME | Время жизни токена доступа веб-интерфейса | 168 ч |
auth.refresh_token_lifetime | PROGATE_AUTH_REFRESH_TOKEN_LIFETIME | Время жизни токена обновления доступа веб-интерфейса | 720 ч |
transfer_work.prosync.bin | PROGATE_TRANSFER_WORK_PROSYNC_BIN | Путь к бинарному файлу prosync | /opt/pgpro/progate/bin/prosync |
transfer_work.procopy.bin | PROGATE_TRANSFER_WORK_PROCOPY_BIN | Путь к бинарному файлу procopy | /opt/pgpro/progate/bin/procopy |
transfer_work.working_dir | PROGATE_TRANSFER_WORK_WORKING_DIR | Путь к каталогу с файлами конфигурации procopy / prosync и другими служебными файлами, используемыми серверной частью ProGate | /var/lib/progate/execution |
Для входа в веб-приложение используйте следующие учётные данные:
Логин: progate
Пароль: progate
В ProGate значения времени в переменных окружения и параметрах конфигурации используют формат строк продолжительности (duration string) Golang. Например:
100 ms — 100 миллисекунд
5.5s — пять с половиной секунд
5m — пять минут
5h — пять часов
1h7m — один час и семь минут