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

3.4.1. Настройка Postgres ProGate с помощью файла окружения
3.4.2. Настройка Postgres ProGate с помощью файла конфигурации

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

  1. Создайте базу данных, пользователя и схему.

    Для работы веб-интерфейса Postgres 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;
  2. Укажите базу данных для службы.

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

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

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

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

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

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

  3. Запустите службу progate.service, используя следующие команды, и добавьте их в автозапуск системы:

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

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

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

Для правильной работы службы в автоматически созданном файле окружения /opt/pgpro/progate/etc/env_progate отредактируйте переменную PROGATE_DB. В ней укажите свои значения user, password, host, port, dbname и search_path. Значение search_path должно содержать имя схемы для хранения служебной информации. Содержимое файла окружения может быть примерно таким:

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

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

# Строка подключения к PostgreSQL/Postgres Pro
PROGATE_DB="postgres://user:password@host:port/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 и другими служебными файлами, используемыми серверной частью Postgres ProGate
PROGATE_TRANSFER_WORK_WORKING_DIR="/var/lib/progate/execution"

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

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

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

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

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

http_server:
  port: 8081
  static_dir: "/opt/pgpro/progate/ui"
  enable_debug_endpoints: false
db: "postgres://user:password@host:port/dbname?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"

Параметры конфигурации описаны в Таблице 3.1.

Таблица 3.1. Содержимое файла конфигурации Postgres ProGate

Параметр конфигурацииПеременная окруженияОписаниеПример
http_server.portPROGATE_HTTP_SERVER_PORTПорт для серверной части Postgres ProGate8081
http_server.static_dirPROGATE_HTTP_SERVER_STATIC_DIRСерверная часть Postgres ProGate обслуживает статические файлы из этого каталога/opt/pgpro/progate/ui
http_server.enable_debug_endpointsPROGATE_HTTP_SERVER_ENABLE_DEBUG_ENDPOINTSВключает отладочные конечные точки (endpoints) приложенияtrue
dbPROGATE_DBСтрока подключения к PostgreSQL/Postgres Propostgres://user:password@host:port/dbname​?sslmode=disable&search_path=progate
logs.formatPROGATE_LOGS_FORMATФормат записей журнала: json / prettypretty
logs.levelPROGATE_LOGS_LEVELУровень журналирования: debug / info / warn / errorinfo
auth.access_token_secretPROGATE_AUTH_ACCESS_TOKEN_SECRETДлина секретного токена. Должна быть не менее 32 символовmT-Y8ICZv-zhirL_j​2K69vX_Upbo8B6rMKtplqv4U4I=
auth.access_token_lifetimePROGATE_AUTH_ACCESS_TOKEN_LIFETIMEВремя жизни токена доступа веб-интерфейса30m
auth.refresh_token_lifetimePROGATE_AUTH_REFRESH_TOKEN_LIFETIMEВремя жизни токена обновления доступа веб-интерфейса720 ч
transfer_work.prosync.binPROGATE_TRANSFER_WORK_PROSYNC_BINПуть к бинарному файлу prosync/opt/pgpro/progate/bin/prosync
transfer_work.procopy.binPROGATE_TRANSFER_WORK_PROCOPY_BINПуть к бинарному файлу procopy/opt/pgpro/progate/bin/procopy
transfer_work.working_dirPROGATE_TRANSFER_WORK_WORKING_DIRПуть к каталогу с файлами конфигурации procopy / prosync и другими служебными файлами, используемыми серверной частью Postgres ProGate/var/lib/progate/execution