Перейти к основному содержимому

Установка PBR-Agent

Цель выполнения​

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

Внимание!

При установке PBR-Agent необходимо также обязательно установить:

Предусловия​

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

  1. Подготовлено окружение.
  2. Дистрибутив CopyWala распакован в соответствии с инструкцией, приведенной в разделе Установка, шаг Распаковка дистрибутива CopyWala.

Последовательность действий​

Внимание!

Предварительно создайте клиента и базу данных для установки сервиса PBR-Agent (или используйте целевую базу данных). Внесите необходимые изменения в конфигурационный файл pg_hba.conf, добавив туда нужную базу данных и клиента, а затем перечитайте конфигурацию.

  1. Установите пакет pbr-agent-{component_version}-{OS_version}.x86_64.rpm из директории pbr/owned/pbra/rpms:

    sudo dnf install {component_name}-{component_version}-{OS_version}.x86_64.rpm

    Пример заполненной команды:

    sudo dnf install pbr-agent-1.1.0-sberlinux9.x86_64.rpm
  2. Откройте файл конфигурации pbr-agent.yaml:

    sudo vi /etc/pbr/pbr-agent.yaml
  3. Заполните конфигурационные параметры.

    Пример заполненных параметров

    # --------------------------------------
    # Настройки для взаимодействия с API Gateway
    # --------------------------------------
    api_gateway:
    http_address: https://<agent-manager-host>:<port> # HTTP(S)-адрес API-шлюза (agent-manager) для REST-запросов: получение задач, отправка результатов, heartbeat (обязательно)
    ws_address: wss://<agent-manager-host>:<port> # WebSocket-адрес API-шлюза (agent-manager) для двустороннего обмена сообщениями (обязательно)
    tls: # опционально
    rootca:
    local_path: tls/root.crt # путь к локальному файлу
    # vault_path: <path> # путь к секрету в HashiCorp/SecMan
    # vault_key: <key> # ключ внутри json-секрета
    cert:
    local_path: tls/cert.crt # путь к локальному файлу
    # vault_path: <path> # путь к секрету в HashiCorp/SecMan
    # vault_key: <key> # ключ внутри json-секрета
    key:
    local_path: tls/cert.key # путь к локальному файлу
    # vault_path: <path> # путь к секрету в HashiCorp/SecMan
    # vault_key: <key> # ключ внутри json-секрета

    # --------------------------------------
    # Настройки БД для хранения информации о выполненных задачах резервного копирования и восстановления данных
    # --------------------------------------
    pbra_db:
    host: localhost
    port: 5433
    database: pbra
    user: {user}
    password: password
    is_pg_auth_config_enabled: false # параметр позволяет применять аутентификацию пользователей при помощи pg_auth_config # если значение выставлено true, то в данном разделе параметр password указывать не нужно
    pg_auth_config_plugins_path: /usr/lib/pbr/pbr-agent
    query_params: search_path=public # параметр позволяет настроить набор значений, специфичных для Pangolin/PostgreSQL, при подключении к базе данных
    tls: # опционально
    rootca:
    local_path: tls/root.crt # путь к локальному файлу
    # vault_path: <path> # путь к секрету в HashiCorp/SecMan
    # vault_key: <key> # ключ внутри json-секрета
    cert:
    local_path: tls/cert.crt # путь к локальному файлу
    # vault_path: <path> # путь к секрету в HashiCorp/SecMan
    # vault_key: <key> # ключ внутри json-секрета
    key:
    local_path: tls/cert.key # путь к локальному файлу
    # vault_path: <path> # путь к секрету в HashiCorp/SecMan
    # vault_key: <key> # ключ внутри json-секрета

    # --------------------------------------
    # Задержка передачи сигнала состояния агентского приложения
    # --------------------------------------
    heartbeat_delay: 10s

    # --------------------------------------
    # Задержка в синхронизации запросов и резервных копий
    # --------------------------------------
    sync_delay: 5s

    # --------------------------------------
    # Параметры подключения к HashiCorp/SecMan
    # --------------------------------------
    vault: # настройки подключения
    server: <vault-url>
    namespace: <namespace>
    path: <mount-path> # путь к точке монтирования хранилища секретов
    kv_version: v2 # версия формата хранилища ключей-значений
    approle:
    role_id: <role-id> # уникальный идентификатор роли
    secret_id: <secret-id> # секретный ключ роли. Либо указывается явно, либо прописывается wrapping_secret_id_file_path
    # auth_method: approle # метод аутентификации
    # wrapping_secret_id_file_path: /var/pbr/cw.wrapped.secret.vlt # путь к файлу для хранения wrapping token
    # wrapping_secret_id_ttl: 8h # время жизни wrapping token (например, 10m - 10 минут, 6h - 6 часов)

    # --------------------------------------
    # Конфигурация TLS
    # --------------------------------------
    tls:
    rootca:
    local_path: tls/root.crt # путь к локальному файлу
    # vault_path: <path> # путь к секрету в HashiCorp/SecMan
    # vault_key: <key> # ключ внутри json-секрета
    cert:
    local_path: tls/cert.crt # путь к локальному файлу
    # vault_path: <path> # путь к секрету в HashiCorp/SecMan
    # vault_key: <key> # ключ внутри json-секрета
    key:
    local_path: tls/cert.key # путь к локальному файлу
    # vault_path: <path> # путь к секрету в HashiCorp/SecMan
    # vault_key: <key> # ключ внутри json-секрета

    # --------------------------------------
    # Опциональные настройки приложения
    # --------------------------------------
    copywala:
    # запуск подпроцесса copywala с указанной конфигурацией
    config_path: /etc/pbr/copywala.yaml

    app:
    # путь к файлу, содержащему идентификатор агентского приложения
    agent_id_file_path: /etc/pbr/pbr.agent.id

    # --------------------------------------
    # Настройка ведения журналов приложения
    # --------------------------------------
    log:
    path: /var/log/pbr/pbr-agent.log # путь к лог-файлу
    dir_mode: 0700 # настройка прав доступа на создаваемые каталоги. Значения необходимо задавать в восьмеричной системе счисления с ведущим нулем.
    file_mode: 0600 # настройка прав доступа на создаваемые файлы. Значения необходимо задавать в восьмеричной системе счисления с ведущим нулем.
    max_size: 100 # максимальный размер лог-файла в мегабайтах. По умолчанию `100 МБ`
    max_age: 90 # максимальный возраст лог-файла в днях
    max_backups: 10 # максимальное количество резервных копий лог-файлов, которые будут храниться. Если выбрано 0, то количество файлов не ограничено
    use_local_time: true # параметр определяет, в каком формате будут записываться метки времени в имена файлов при ротации. Если выбрано true, используется локальное системное время, при false (и по умолчанию) – `UTC`.
    compress_backups: false # параметр определяет необходимость сжатия резервных копий лог-файлов. Если выбрано true, лог-файлы будут сжаты, если false, лог-файлы будут храниться без сжатия

    примечание

    С подробной информацией о настройках конфигурации логов можно ознакомиться в разделе «Системный журнал».

  4. Запустите сервис pbr-agent.service:

    sudo systemctl start pbr-agent.service

Настройка TLS-сертификатов для PBR-Agent​

примечание

Ниже приведены шаги настройки TLS-сертификатов для Copywala VDB. Настройка сертификатов для текущего компонента выполняется аналогичным образом.

Для обеспечения взаимодействия с Vector DB по протоколу HTTPS/mTLS выполните описанные ниже шаги:

  1. Сгенерируйте корневой сертификат (далее – Root CA).

    примечание

    Данный шаг является опциональным, выполните его, если в инфраструктуре отсутствует готовый Root CA. В противном случае следует использовать уже существующий Root CA.

    Важно помнить, что при самостоятельной генерации Root CA, его необходимо использовать для подписи сертификата сервера (Vector DB).

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

    openssl req -subj "/CN=RootCA" -newkey rsa:2048 -nodes \
    -keyout rootCA.key \
    -new -x509 \
    -days 365 \
    -out rootCA.crt

    В результате будут получены:

    • rootCA.key — приватный ключ Root CA;
    • rootCA.crt — самоподписанный корневой сертификат.
  2. Создайте файл openssl.cnf, указав актуальные значения, включая SAN-параметры:

    [ req ]
    default_bits = 2048
    default_md = sha256
    prompt = no
    distinguished_name = req_distinguished_name
    req_extensions = req_ext

    [ req_distinguished_name ]
    C = RU
    ST = Moscow
    L = Moscow
    O = myCompany
    OU = IT Department
    CN = example.com

    [ req_ext ]
    subjectAltName = DNS:<dns_name>, DNS:localhost, IP:<ip>, IP:127.0.0.1

    Замените <dns_name> и <ip> на фактические значения, используемые в инфраструктуре.

  3. Сгенерируйте приватный ключ и CSR (пример команды):

    openssl genpkey -algorithm RSA -out copywala-vdb.key

    openssl req -new \
    -key copywala-vdb.key \
    -out copywala-vdb.csr \
    -config openssl.cnf
  4. Подпишите CSR с использованием Root CA (существующего или сгенерированного):

    openssl x509 -req \
    -in copywala-vdb.csr \
    -CA rootCA.crt \
    -CAkey rootCA.key \
    -CAcreateserial \
    -out copywala-vdb.crt \
    -days 365 \
    -extfile openssl.cnf \
    -extensions req_ext

    В результате будет создан сертификат для Copywala VDB – copywala-vdb.crt.

  5. Для проверки корректности сертификата используйте команду:

    openssl x509 -in copywala-vdb.crt -text -noout

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

    • Subject и Issuer;
    • срок действия;
    • расширения сертификата (включая SAN);
    • другие параметры X.509.
  6. После генерации и/или получения сертификатов настройте подключение к Vector DB. Для этого в конфигурационном файле copywala-vdb.yaml заполните секцию tls, указав пути к созданным TLS-артефактам.

Проверка результата​

Для проверки установки и работоспособности компонентов CopyWala обратитесь к разделу Чек-лист проверки корректности работы.

к сведению

После завершения установки данного модуля:

  1. При необходимости выполните установку других модулей Platform V CopyWala.
  2. Перейдите к следующему шагу — Настройка интеграции Platform V CopyWala с внешними сервисами.