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

Установка Storage Manager

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

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

Внимание!

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

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

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

  1. Подготовлено окружение.
  2. Дистрибутив CopyWala распакован в соответствии с инструкцией, приведенной в разделе Установка, шаг Распаковка дистрибутива CopyWala.
  3. Создана и настроена служебная база данных, необходимая для работы Agent Manager, Storage Manager, Task Manager.

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

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

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

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

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

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

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

    # --------------------------------------
    # Настройки для взаимодействия с API Gateway
    # --------------------------------------
    api:
    address: 0.0.0.0:29030 # адрес, на котором запускается сервер Storage 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-секрета

    # --------------------------------------
    # Настройки подключения к БД
    # --------------------------------------
    db:
    host: hostname.local
    port: 5433
    user: {user}
    password: pass
    database: pbr_storage_manager
    query_params: search_path=public # параметр позволяет настроить набор значений, специфичных для Pangolin/PostgreSQL, при подключении к базе данных
    vault_database_engine_static_role: role_name # статическая роль, которая выдает фиксированные учетные данные для доступа к базе данных
    max_open_conns: 100
    max_idle_conns: 25
    conn_max_lifetime: 5m
    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-секрета

    # --------------------------------------
    # Настройка для взаимодействия с OpenID
    # --------------------------------------
    open_id:
    realm_url: https://sso.test.host/realms/REALMNAME
    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-секрета

    # --------------------------------------
    # Настройка выпуска токенов доступа
    # --------------------------------------
    auth:
    public_key:
    local_path: /etc/pbr/storage-manager/public-key.pem.pub # путь к локальному файлу
    # vault_path: <path> # путь к секрету в HashiCorp/SecMan
    # vault_key: <key> # ключ внутри json-секрета

    private_key:
    local_path: /etc/pbr/storage-manager/private-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-токена для регистрации агентского приложения

    # --------------------------------------
    # Возможность загрузки TLS-сертификатов из защищенного хранилища секретов
    # --------------------------------------
    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-секрета

    # --------------------------------------
    # Настройка ведения журналов приложения
    # --------------------------------------
    log:
    path: /var/log/pbr/storage-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, лог-файлы будут храниться без сжатия

    примечание

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

  4. Запустите сервис storage-manager.service:

    sudo systemctl start storage-manager.service

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

примечание

Ниже приведены шаги настройки 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 с внешними сервисами.