Установка Agent Manager
Цель выполнения
Установка Agent Manager является опциональной и необходима, если планируется использование централизованного каталога резервных копий.
При установке Agent Manager необходимо также обязательно установить:
Предусловия
Перед началом установки убедитесь, что выполнены следующие условия:
- Подготовлено окружение.
- Дистрибутив CopyWala распакован в соответствии с инструкцией, приведенной в разделе Установка, шаг Распаковка дистрибутива CopyWala.
Последовательность действий
-
Установите пакет
agent-manager-{component_name}-{component_version}-{OS_version}.x86_64.rpmиз директорииpbr/owned/dbbr/rpms:- SberLinux, РЕД ОС, CentOS
- Astra Linux
- Альт СП
sudo dnf install {component_name}-{component_version}-{OS_version}.x86_64.rpmsudo apt install {component_name}-{component_version}-{OS_version}.x86_64.debsudo apt-get install {component_name}-{component_version}-{OS_version}.x86_64.rpmПример заполненной команды:
sudo dnf install agent-manager-1.1.0-sberlinux9.x86_64.rpm -
Откройте файл конфигурации
agent-manager.yaml:sudo vi /etc/pbr/agent-manager.yaml -
Заполните конфигурационные параметры.
Пример заполненных параметров
# --------------------------------------# Настройки для взаимодействия с API Gateway# --------------------------------------api:address: 0.0.0.0:29010 # адрес, на котором запускается сервер Agent Manager # обязательно к заполнениюmtls: false # необходимость проверки сертификатов клиента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-секрета# --------------------------------------# Настройки подключения по TCP к Agent Manager# --------------------------------------ws:address: 0.0.0.0:29015mtls: false # необходимость проверки сертификатов клиента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-секрета# --------------------------------------# Настройка подключения к БД# --------------------------------------db:host: hostname.localport: 5433user: {user}password: passdatabase: pbr_agent_managerquery_params: search_path=public # параметр позволяет настроить набор значений, специфичных для Pangolin/PostgreSQL, при подключении к базе данныхvault_database_engine_static_role: role_name # статическая роль, которая выдает фиксированные учетные данные для доступа к базе данныхmax_open_conns: 100max_idle_conns: 25conn_max_lifetime: 5mtls: # опционально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-секрета# --------------------------------------# Настройка для взаимодействия с OpenID# --------------------------------------open_id:realm_url: https://keycloak.host/realms/realm-name # URL-адрес Keycloak realmtls: # опционально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-секрета# --------------------------------------# Настройка выпуска токенов доступа# --------------------------------------auth:public_key:local_path: /etc/pbr/agent-manager/example-key.pem.pub # путь к локальному файлу# vault_path: <path> # путь к секрету в HashiCorp/SecMan# vault_key: <key> # ключ внутри json-секретаprivate_key:local_path: /etc/pbr/agent-manager/example-key.pem # путь к локальному файлу# vault_path: <path> # путь к секрету в HashiCorp/SecMan# vault_key: <key> # ключ внутри json-секретаaccess_token_life_time: 15m # время жизни JWT-токена доступаrefresh_token_life_time: 72h # время жизни JWT-токена для обновления пары токеновregistration_token_life_time: 24h # время жизни JWT-токена для регистрации агентского приложения# --------------------------------------# Параметры подключения к 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_pathauth_method: approle # метод аутентификацииwrapping_secret_id_file_path: /var/pbr/cw.wrapped.secret.vlt # путь к файлу для хранения wrapping tokenwrapping_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-секрета# --------------------------------------# Настройка ведения журналов приложения# --------------------------------------log:path: /var/log/pbr/agent-manager.log # путь к лог-файлуmax_size: 100 # максимальный размер лог-файла в мегабайтах. По умолчанию `100 МБ`max_age: 90 # максимальный возраст лог-файла в дняхmax_backups: 10 # максимальное количество резервных копий лог-файлов, которые будут храниться. Если выбрано 0, то количество файлов не ограниченоuse_local_time: true # параметр определяет, в каком формате будут записываться метки времени в имена файлов при ротации. Если выбрано true, используется локальное системное время, при false (и по умолчанию) – `UTC`.compress_backups: false # параметр определяет необходимость сжатия резервных копий лог-файлов. Если выбрано true, лог-файлы будут сжаты, если false, лог-файлы будут храниться без сжатияпримечаниеС подробной информацией о настройках конфигурации логов можно ознакомиться в разделе «Системный журнал».
-
Запустите сервис
agent-manager.service:sudo systemctl start agent-manager.service
Настройка TLS-сертификатов для Agent Manager
Ниже приведены шаги настройки TLS-сертификатов для Copywala VDB. Настройка сертификатов для текущего компонента выполняется аналогичным образом.
Для обеспечения взаимодействия с Vector DB по протоколу HTTPS/mTLS выполните описанные ниже шаги:
-
Сгенерируйте корневой сертификат (далее – 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— самоподписанный корневой сертификат.
-
Создайте файл
openssl.cnf, указав актуальные значения, включая SAN-параметры:[ req ]default_bits = 2048default_md = sha256prompt = nodistinguished_name = req_distinguished_namereq_extensions = req_ext[ req_distinguished_name ]C = RUST = MoscowL = MoscowO = myCompanyOU = IT DepartmentCN = example.com[ req_ext ]subjectAltName = DNS:<dns_name>, DNS:localhost, IP:<ip>, IP:127.0.0.1Замените
<dns_name>и<ip>на фактические значения, используемые в инфраструктуре. -
Сгенерируйте приватный ключ и CSR (пример команды):
openssl genpkey -algorithm RSA -out copywala-vdb.keyopenssl req -new \-key copywala-vdb.key \-out copywala-vdb.csr \-config openssl.cnf -
Подпишите 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. -
Для проверки корректности сертификата используйте команду:
openssl x509 -in copywala-vdb.crt -text -nooutВ результате выполнения команды отображается:
- Subject и Issuer;
- срок действия;
- расширения сертификата (включая SAN);
- другие параметры X.509.
-
После генерации и/или получения сертификатов настройте подключение к Vector DB. Для этого в конфигурационном файле
copywala-vdb.yamlзаполните секциюtls, указав пути к созданным TLS-артефактам.
Проверка результата
Для проверки установки и работоспособности компонентов CopyWala обратитесь к разделу Чек-лист проверки корректности работы.
После завершения установки данного модуля:
- При необходимости выполните установку других модулей Platform V CopyWala.
- Перейдите к следующему шагу — Настройка интеграции Platform V CopyWala с внешними сервисами.