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

Автоматизированная установка Storage Service

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

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

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

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

Выполните шаги в следующем порядке:

  1. Подготовка среды Ansible.
  2. Установка Ansible-коллекций.
  3. Генерация TLS-сертификатов.
  4. Подготовка inventory-файла и переменных роли.
  5. Запуск установки.

Подготовка среды Ansible​

Рекомендуется запускать установку модуля Storage Service в виртуальной среде Python.

к сведению

Данный шаг выполняется на управляющем узле Ansible (control node) — машине, с которой запускаются Ansible-плейбуки.

Создание виртуальной среды позволяет избежать конфликтов с уже предустановленными пакетами и не затрагивать существующую среду на текущей машине. Для подготовки виртуального окружения выполните следующие шаги:

  1. Создайте виртуальное окружение. Рекомендуется использовать Python 3.9:

    python3 -m venv .pbr
  2. Активируйте виртуальное окружение:

    source .pbr/bin/activate
  3. Установите необходимые пакеты:

    python3.9 -m pip install 'ansible==8.7.0'
  4. Проверьте, что установка Ansible прошла успешно: ansible --version. В результате вывод не должен содержать ошибок. Команда pip list должна вывести зависимости:

    ansible 8.7.0
    ansible-core 2.15.13
к сведению

После завершения установки компонентов виртуальную среду можно отключить. Выполните консольную команду: deactivate.

Установка Ansible-коллекций​

к сведению

Данный шаг выполняется на управляющем узле Ansible (control node) — машине, с которой запускаются Ansible-плейбуки.

Установите или обновите Ansible-коллекции с помощью ansible-galaxy. Необходимые зависимости:

Название Ansible-коллекции

Версия

Установка

sbt-pbr (поставляется в составе дистрибутива продукта CopyWala)

1.0.0

Перейдите в директорию с распакованным дистрибутивом любого компонента CopyWala и запустите команду:

ansible-galaxy collection install package/scripts/Ansible/collections/sbt-pbr-1.0.0.tar.gz

Community.Postgresql (устанавливается из внешнего репозитория Ansible Galaxy)

3.9.1

ansible-galaxy collection install community.postgresql:3.9.1

Community.Library_Inventory_Filtering_V1 (устанавливается из внешнего репозитория Ansible Galaxy)

1.0.2

ansible-galaxy collection install community.library_inventory_filtering_v1:1.0.2

Генерация TLS-сертификатов​

Сгенерируйте TLS-сертификаты, необходимые для работы модуля Storage Service с шифрованием.

Для генерации используйте Ansible-роль certs. Работа с ролью описана в дополнительной документации для автоматизированного варианта установки (с помощью Ansible) в разделе Генерация сертификатов с помощью Ansible-роли certs.

Подготовка inventory-файла и переменных роли​

  1. Перейдите в директорию со скриптами установки. Например, если дистрибутив был распакован в /path_to_dir/distrib/:

    cd /path_to_dir/distrib/pbr/owned/pbss/package/scripts/Ansible
  2. Создайте inventory-файл на основе inventory_example.yml и в секции storage_service.hosts укажите IP-адреса узлов, на которые необходимо установить модуль Storage Service.

    Пример inventory-файла

    storage_service:
    hosts:
    storage_host1:
    ansible_host: "<storage_service_ip_address>"

    Подсказка

    Если Storage Service необходимо установить на несколько хостов, добавьте дополнительные секции в inventory-файл по примеру ниже:

    Пример inventory-файла

    storage_service:
    hosts:
    storage_host1:
    ansible_host: "<storage_service_ip_address_1>"

    storage_host2:
    ansible_host: "<storage_service_ip_address_2>"

    # КОД ПРОПУЩЕН: секции с IP-адресами остальных хостов

  3. Задайте переменные роли storage_service.

    к сведению

    Роль storage_service выполняет установку и настройку модуля Storage Service. Она использует RPM-пакет, путь к которому задается в переменной storage_service_package_path. Пакет копируется на целевой узел, после чего выполняется его установка.

    Путь к RPM-пакету можно задать вручную с помощью переменной storage_service_package_path или определить автоматически с помощью роли common.

    Задайте переменные, у которых в таблице ниже в столбце «Обязательность заполнения» – Да, а также при необходимости задайте другие (не обязательные) переменные.

    примечание
    • Если переменная не задана явно в плейбуке, для нее используется значение по умолчанию, определенное в файле defaults/main.yml роли.

    • Из необязательных переменных рекомендуется заполнять секцию *_tls, где * — это префикс с именем модуля. Например, для Storage Manager секция будет выглядеть так:

      storage_manager_tls:
      rootca:
      local_path: /path/to/certs/certificates/rootCA.crt
      cert:
      local_path: /path/to/certs/certificates/storage-manager.crt
      key:
      local_path: /path/to/certs/certificates/storage-manager.key
Переменные Ansible-роли storage_service

Название переменной

Описание

Значение по умолчанию

Обязательность заполнения

storage_service_package_path

Путь к RPM-файлу установщика компонента Storage Service. Используется, когда требуется установка из отдельного файла, не идущего в архиве с продуктом, например для тестирования

''

Да или использовать роль common. При использовании роли common задавать эту переменную не требуется

storage_service_grpc

Словарь, описывающий настройку gRPC сервера Storage Service

{}

Да

storage_service_log

Словарь, описывающий параметры логирования. Содержит следующие ключи:<br />path – путь к файлу, в который будут записывать логи;<br />max_size – максимальный размер логов в мегабайтах;<br />max_age – длительность хранения логов в дня;<br />max_backups – максимальное число файлов с логами;<br />use_local_time – использование местного времени;<br />compress_backups – сжатие файлов с логами с помощью gzip

{}

Да

storage_service_config_params

Словарь, описывающий общие параметры сервиса. Содержит следующие ключи:<br />storage_path – расположение, в котором будут храниться файлы Storage Service;<br />max_concurrent_streams – максимальное количество потоков для одного хоста

{}

Да

storage_service_tls

Словарь, описывающий параметры TLS для Storage Service. Содержит следующие ключи:<br />rootca – путь к сертификату удостоверяющего центра;<br />cert – путь к сертификату Storage Service;<br />key – путь к ключу Storage Service

{}

Нет

storage_service_user

Пользователь для запуска службы Storage Service

pbr

Нет

storage_service_config_dir

Директория с конфигурационным файлом компонента Storage Service

/etc/pbr

Нет

storage_service_config_file

Имя конфигурационного файла компонента Storage Service

storage-service.yaml

Нет

storage_service_api_gateway

Словарь, описывающий настройку API Gateway для Storage Service

{}

Нет

storage_service_vault

Словарь, описывающий параметры подключения к HashiCorp/SecMan. Содержит следующие ключи:<br />server – адрес HashiCorp/SecMan;<br />approle – данные для авторизации в HashiCorp/SecMan

{}

Нет

Переменные роли можно задать одним из следующих способов:

Пример заполнения

storage_service:
hosts:
storage_host:
ansible_host: "<storage_service_ip_address>"
storage_service_package_path: /path_to_dir/distrib/pbr/owned/pbss/rpms/storage-service-1.3.1-sberlinux9.x86_64.rpm
storage_service_grpc:
address: 0.0.0.0:29509
mtls: true
storage_service_log: /var/log/pbr/storage-service.log

# КОД ПРОПУЩЕН: другие переменные роли

Подсказка

Пример плейбука также приведен в файле pbr/owned/pbss/package/scripts/Ansible/playbook_example.yml.

Запуск установки​

примечание

Перед запуском убедитесь, что виртуальное окружение .pbr активировано.

Для запуска установки компонента выполните команды:

cd pbr/owned/pbss/package/scripts/Ansible
ansible-playbook -i inventory.yml install.yml
примечание

Если на шаге подготовка inventory-файла и переменных ролей переменные были заданы в отдельном файле, укажите его с помощью флага -e, например:

cd pbr/owned/pbss/package/scripts/Ansible
ansible-playbook -i inventory.yml install.yml -e @storage-service-vars.yml

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

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

к сведению

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

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