Автоматизированная установка Storage Service
Предусловия
Перед началом установки убедитесь, что выполнены следующие условия:
- Подготовлено окружение.
- Дистрибутив CopyWala распакован в соответствии с инструкцией, приведенной в разделе Установка, шаг Распаковка дистрибутива CopyWala.
Последовательность действий
Выполните шаги в следующем порядке:
- Подготовка среды Ansible.
- Установка Ansible-коллекций.
- Генерация TLS-сертификатов.
- Подготовка inventory-файла и переменных роли.
- Запуск установки.
Подготовка среды Ansible
Рекомендуется запускать установку модуля Storage Service в виртуальной среде Python.
Данный шаг выполняется на управляющем узле Ansible (control node) — машине, с которой запускаются Ansible-плейбуки.
Создание виртуальной среды позволяет избежать конфликтов с уже предустановленными пакетами и не затрагивать существующую среду на текущей машине. Для подготовки виртуального окружения выполните следующие шаги:
-
Создайте виртуальное окружение. Рекомендуется использовать Python 3.9:
python3 -m venv .pbr -
Активируйте виртуальное окружение:
source .pbr/bin/activate -
Установите необходимые пакеты:
python3.9 -m pip install 'ansible==8.7.0' -
Проверьте, что установка Ansible прошла успешно:
ansible --version. В результате вывод не должен содержать ошибок. Командаpip listдолжна вывести зависимости:ansible 8.7.0ansible-core 2.15.13
После завершения установки компонентов виртуальную среду можно отключить. Выполните консольную команду: deactivate.
Установка Ansible-коллекций
Данный шаг выполняется на управляющем узле Ansible (control node) — машине, с которой запускаются Ansible-плейбуки.
Установите или обновите Ansible-коллекции с помощью ansible-galaxy. Необходимые зависимости:
Название Ansible-коллекции | Версия | Установка |
|---|---|---|
| 1.0.0 | Перейдите в директорию с распакованным дистрибутивом любого компонента CopyWala и запустите команду: |
| 3.9.1 | |
| 1.0.2 | |
Генерация TLS-сертификатов
Сгенерируйте TLS-сертификаты, необходимые для работы модуля Storage Service с шифрованием.
Для генерации используйте Ansible-роль certs. Работа с ролью описана в дополнительной документации для автоматизированного варианта установки (с помощью Ansible) в разделе Генерация сертификатов с помощью Ansible-роли certs.
Подготовка inventory-файла и переменных роли
-
Перейдите в директорию со скриптами установки. Например, если дистрибутив был распакован в
/path_to_dir/distrib/:cd /path_to_dir/distrib/pbr/owned/pbss/package/scripts/Ansible -
Создайте 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-адресами остальных хостов -
Задайте переменные роли 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.crtcert:local_path: /path/to/certs/certificates/storage-manager.crtkey:local_path: /path/to/certs/certificates/storage-manager.key
-
Название переменной | Описание | Значение по умолчанию | Обязательность заполнения |
|---|---|---|---|
| Путь к RPM-файлу установщика компонента Storage Service. Используется, когда требуется установка из отдельного файла, не идущего в архиве с продуктом, например для тестирования |
| Да или использовать роль common. При использовании роли common задавать эту переменную не требуется |
| Словарь, описывающий настройку gRPC сервера Storage Service |
| Да |
| Словарь, описывающий параметры логирования. Содержит следующие ключи:<br /> |
| Да |
| Словарь, описывающий общие параметры сервиса. Содержит следующие ключи:<br /> |
| Да |
| Словарь, описывающий параметры TLS для Storage Service. Содержит следующие ключи:<br /> |
| Нет |
| Пользователь для запуска службы Storage Service |
| Нет |
| Директория с конфигурационным файлом компонента Storage Service |
| Нет |
| Имя конфигурационного файла компонента Storage Service |
| Нет |
| Словарь, описывающий настройку API Gateway для Storage Service |
| Нет |
| Словарь, описывающий параметры подключения к HashiCorp/SecMan. Содержит следующие ключи:<br /> |
| Нет |
Переменные роли можно задать одним из следующих способов:
- в inventory-файле
- в плейбуке
install.yml - в отдельном файле с переменными (например,
storage-service-vars.yml)
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
# КОД ПРОПУЩЕН: другие переменные роли
- name: Install Storage Service
hosts: storage_service
roles:
- role: storage_service
become: true
vars:
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
# КОД ПРОПУЩЕН: другие переменные роли
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 обратитесь к разделу Чек-лист проверки корректности работы.
После завершения установки данного модуля:
- При необходимости выполните установку других модулей Platform V CopyWala.
- Перейдите к следующему шагу — Настройка интеграции Platform V CopyWala с внешними сервисами.