Автоматизированная установка компонента PBRA
Компонент PBRA включает следующие модули:
Модуль | Описание |
|---|---|
Выполняет создание резервных копий и восстановление данных из резервных копий PostgreSQL-совместимых баз данных | |
Агентское приложение, предназначенное для запуска процессов резервного копирования и восстановления данных, а также для обеспечения взаимодействия с инфраструктурой продукта CopyWala |
Настоящая инструкция предназначена для автоматизированной установки компонента целиком. Если требуется установить только определенный модуль – воспользуйтесь инструкцией на этот модуль (перейдите по ссылке в таблице выше).
Предусловия
Перед началом установки убедитесь, что выполнены следующие условия:
- Подготовлено окружение.
- Дистрибутив CopyWala распакован в соответствии с инструкцией, приведенной в разделе Установка, шаг Распаковка дистрибутива CopyWala.
Последовательность действий
Выполните шаги в следующем порядке:
- Подготовка среды Ansible.
- Установка Ansible-коллекций.
- Генерация TLS-сертификатов.
- Подготовка inventory-файла и переменных ролей.
- Запуск установки.
Подготовка среды Ansible
Рекомендуется запускать установку модуля Copywala в виртуальной среде 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-сертификаты, необходимые для работы модуля Copywala с шифрованием.
Для генерации используйте Ansible-роль certs. Работа с ролью описана в дополнительной документации для автоматизированного варианта установки (с помощью Ansible) в разделе Генерация сертификатов с помощью Ansible-роли certs.
Подготовка inventory-файла и переменных ролей
-
Перейдите в директорию со скриптами установки. Например, если дистрибутив был распакован в
/path_to_dir/distrib/:cd /path_to_dir/distrib/pbr/owned/pbra/package/scripts/Ansible -
Создайте inventory-файл на основе
inventory_example.ymlи в секцииpbra.hostsукажите IP-адреса узлов, на которые необходимо установить модуль PBRA.Пример inventory-файлаpbra:hosts:pbra-host1:ansible_host: "<pbra_ip_address>"ПодсказкаЕсли PBRA необходимо установить на несколько хостов, добавьте дополнительные секции в inventory-файл по примеру ниже:
Пример inventory-файлаpbra:hosts:pbra-host1:ansible_host: "<pbra_ip_address_1>"pbra-host2:ansible_host: "<pbra_ip_address_2>"# КОД ПРОПУЩЕН: секции с IP-адресами остальных хостов -
Задайте переменные ролей copywala и pbr_agent.
к сведениюРоли copywala и pbr_agent выполняют установку и настройку copywala и pbr-agent соответственно. Они используют RPM-пакеты, путь к которым задается в переменных
copywala_package_pathиpbr_agent_package_path. Пакеты копируются на целевой узел, после чего выполняется их установка.Пути к RPM-пакетам можно задать вручную или определить автоматически с помощью роли 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
- copywala
-
Название переменной | Описание | Значение по умолчанию | Обязательность заполнения |
|---|---|---|---|
| Путь к RPM-файлу установщика компонента CopyWala. Используется, когда требуется установка из отдельного файла, не идущего в архиве с продуктом, например для тестирования |
| Да или использовать роль common. При использовании роли common задавать эту переменную не требуется |
| Словарь, описывающий параметры целевой БД. На основе этих параметров будет создан пользователь (владелец БД) и сама БД. Содержит следующие ключи:<br /> |
| Да |
| Словарь, описывающий параметры логирования copywala. Содержит следующие ключи:<br /> |
| Да |
| Администратор баз данных для создания служебной базы данных | Не задано | Да |
| Пароль администратора баз данных для создания служебной базы данных | Не задано | Да |
| Хранилище резервных копий, например, | Не задано | Да |
| Директория с конфигурационным файлом компонента CopyWala |
| Нет |
| Имя конфигурационного файла компонента CopyWala |
| Нет |
| Имя конфигурационного файла компонента PBR Agent |
| Нет |
| Словарь, описывающий параметры конфигурации целевой базы данных. Содержит следующие ключи:<br /> |
| Нет |
| Пользователь Copywala |
| Нет |
| Словарь, описывающий параметры служебной БД. На основе этих параметров будет создан пользователь (владелец БД) и сама БД. Содержит следующие ключи:<br /> |
| Нет |
| Словарь, описывающий глобальные параметры TLS. Содержит следующие ключи:<br /> |
| Нет |
| Словарь, описывающий параметры архива. Содержит следующие ключи:<br /> |
| Нет |
| Словарь, описывающий параметры политику резервного копирования. Содержит следующие ключи:<br /> |
| Нет |
| Словарь, описывающий настройку веб-сервера API API-gateway. Содержит следующие ключи:<br /> |
| Нет |
| Интервал между запросами heartbeat |
| Нет |
| Словарь, описывающий параметры агента Copywala |
| Нет |
| Словарь, описывающий параметры TLS для агента Copywala |
| Нет |
| Словарь, описывающий параметры логирования агента Copywala |
| Нет |
::::
Название переменной | Описание | Значение по умолчанию | Обязательность заполнения |
|---|---|---|---|
| Путь к RPM-файлу установщика компонента pbr-agent. Используется, когда требуется установка из отдельного файла, не идущего в архиве с продуктом, например для тестирования |
| Да или использовать роль common. При использовании роли common задавать эту переменную не требуется |
| Словарь, описывающий параметры служебной БД. На основе этих параметров будет создан пользователь (владелец БД) и сама БД. Содержит следующие ключи:<br /> |
| Да |
| Словарь, описывающий настройку веб-сервера API API-gateway. Содержит следующие ключи:<br /> |
| Да |
| Словарь, описывающий параметры логирования pbr-agent. Содержит следующие ключи:<br /> |
| Да |
| Администратор баз данных для создания служебной базы данных | Не задано | Да |
| Пароль администратора баз данных для создания служебной базы данных | Не задано | Да |
| Директория с конфигурационным файлом компонента pbr-agent |
| Нет |
| Имя конфигурационного файла компонента pbr-agent |
| Нет |
| Пользователь для запуска службы pbr-agent |
| Нет |
| Интервал между запросами PBR-Agent к Copywala для проверки работоспособности |
| Нет |
| Словарь, описывающий настройку Copywala. Содержит ключ: |
| Нет |
| Словарь, описывающий PBR-Agent параметры TLS. Содержит следующие ключи:<br /> |
| Нет |
| Словарь, описывающий параметры подключения к HashiCorp/SecMan. Содержит следующие ключи:<br /> |
| Нет |
:::::
Переменные для ролей можно задать одним из следующих способов:
- в inventory-файле
- в плейбуке
install.yml - в отдельном файле с переменными (например,
group_vars/pbra.yml)
pbra:
hosts:
pbra-host:
ansible_host: "<pbra_ip_address>"
# Переменные роли copywala
copywala_target_db:
host: 127.0.0.1
port: 5433
user: "<postgres>"
password: "<some_password>"
database: postgres
query_params: search_path=pbr
copywala_log:
path: /var/log/pbr/copywala.log
# КОД ПРОПУЩЕН: другие переменные роли copywala
# Переменные роли pbr_agent
pbr_agent_db:
host: 127.0.0.1
port: 5433
user: "<postgres>"
password: "<some_password>"
database: postgres
query_params: search_path=pbr
pbr_agent_api_gateway:
http_address: https://<agent-manager-host>:<port>:29010
ws_address: wss://<agent-manager-host>:<port>:29015
pbr_agent_log:
path: /var/log/pbr/pbr-agent.log
# КОД ПРОПУЩЕН: другие переменные роли pbr_agent
- name: Install Copywala
hosts: pbra
roles:
- role: copywala
become: true
- role: pbr_agent
become: true
vars:
# Переменные роли copywala
copywala_target_db:
host: 127.0.0.1
port: 5433
user: "<postgres>"
password: "<some_password>"
database: postgres
query_params: search_path=pbr
copywala_log:
path: /var/log/pbr/copywala.log
# КОД ПРОПУЩЕН: другие переменные роли copywala
# Переменные роли pbr_agent
pbr_agent_db:
host: 127.0.0.1
port: 5433
user: "<postgres>"
password: "<some_password>"
database: postgres
query_params: search_path=pbr
pbr_agent_api_gateway:
http_address: https://<agent-manager-host>:<port>:29010
ws_address: wss://<agent-manager-host>:<port>:29015
pbr_agent_log:
path: /var/log/pbr/pbr-agent.log
# КОД ПРОПУЩЕН: другие переменные роли pbr_agent
# Переменные роли copywala
copywala_target_db:
host: 127.0.0.1
port: 5433
user: "<postgres>"
password: "<some_password>"
database: postgres
query_params: search_path=pbr
copywala_log:
path: /var/log/pbr/copywala.log
# КОД ПРОПУЩЕН: другие переменные роли copywala
# Переменные роли pbr_agent
pbr_agent_db:
host: 127.0.0.1
port: 5433
user: "<postgres>"
password: "<some_password>"
database: postgres
query_params: search_path=pbr
pbr_agent_api_gateway:
http_address: https://<agent-manager-host>:<port>:29010
ws_address: wss://<agent-manager-host>:<port>:29015
pbr_agent_log:
path: /var/log/pbr/pbr-agent.log
# КОД ПРОПУЩЕН: другие переменные роли pbr_agent
Запуск установки
Перед запуском убедитесь, что виртуальное окружение .pbr активировано.
Для установки компонента PBRA выполните команды:
-
Если переменные заданы в inventory-файле или в разделе
varsплейбукаinstall.yml:cd pbr/owned/pbra/package/scripts/Ansibleansible-playbook -i inventory.yml install.yml -
Если переменные вынесены в отдельный файл
group_vars/pbra.yml, запустите плейбук из директории, в которой находятсяinventory.ymlи папкаgroup_vars:cd pbr/owned/pbra/package/scripts/Ansibleansible-playbook -i inventory.yml install.yml -
Если часть переменных не задана ни в одном из файлов, их можно передать через командную строку с помощью флага
-e, например:ansible-playbook -i pbr/owned/pbra/package/scripts/Ansible/inventory.yml -e common_rpm_dir_path=/home/ansible-user -e copywala_admin_db_user='postgres' -u <имя_пользователя> pbr/owned/pbra/package/scripts/Ansible/install.yml
Проверка результата
Для проверки установки и работоспособности модулей Copywala и PBR-Agent обратитесь к разделу Чек-лист проверки корректности работы.