Обновление конфигурационного файла

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

В конфигурационном файле модуля присутствуют следующие необязательные параметры:

##
## Transport to execute remote scrips: before_backup, after_backup
# possble values: virsh, ssh
# default value: virsh
#script_transport virsh
##
## User name for ssh transport
#ssh_user rubackup_service_user
## Connection timeout for ssh transport, seconds
# minimum 1, maximum 300, default 5
#ssh_connection_timeout 30
## ssh key file for ssh transport, full path only!
#ssh_key_file /root/my_keys/my_key_file
## project`s region, optional
region NONE

Пользователь при создании правила на резервное копирование может задать путь к скрипту внутри виртуальной машины. Скрипт, путь к которому указан в качестве значения параметра script_before_snapshot, будет выполнен на виртуальной машине, для которой выполняется резервное копирование, перед созданием снимков состояния дисков этой виртуальной машины.

Скрипт, путь к которому указан в качестве значения параметра script_after_snapshot, будет выполнен на виртуальной машине, для которой выполняется резервное копирование, после создания снэпшотов дисков этой виртуальной машины.

Выполняемые действия для этих скриптов определяют пользователи.

Значение скрипт-транспорта virsh ставится по умолчанию. При этом, если необходима функция запуска скриптов на целевой виртуальной машине, выполните следующие требования:

Настройте конфигурационный файл настроек доступа к API OpenStack rb_module_openstack.conf (подробнее в разделе «Установка Клиента RuBackup»), кроме основной пользовательской учетной записи

конфигурационный файл должен содержать учетную запись администратора.

Разверните виртуальную машину, для которой предполагается

создание резервных копий, используйте гипервизор типа QEMU.

  1. Для виртуальной машины, на которой развернут клиент RuBackup и модуль rb_module_openstack:

    • установите пакет libvirt-clients;

    • скопируйте SSH-ключ на узлы гипервизоров платформы виртуализации. Это необходимо для беспарольного SSH-подключения с виртуальной машины, на которой развернут клиент RuBackup, к узлам гипервизоров платформы виртуализации;

    • на виртуальной машине, для которой предполагается создание резервных копий, установите пакет qemu-guest-agent.

Если выбрать значение ssh, то для запуска скриптов на виртуальной машине, для которой создаётся резервная копия, вместо обращения к гипервизору будет использоваться подключение по SSH с узла, где установлен клиент и этот модуль. В этом случае пользователю необходимо задать новые параметры в конфигурационном файле, где:

  • ssh_user — пользователь от имени которого будет инициировано подключение к виртуальной машине через SSH для запуска на ней скрипта. Предполагается, что этому пользователю предоставлены внутри целевой виртуальной машины права на исполнение скриптов script_before_snapshot, script_after_snapshot или /opt/rubackup/scripts/rustack.sh.

  • ssh_connection_timeout — максимальное время ожидания в секундах, в течение которого модуль ожидает успешное подключение по SSH к виртуальной машине. Если соединение не будет установлено в заданное время, задача на создание резервной копии завершится с ошибкой.

  • ssh_key_file — полный путь к файлу SSH-ключа для пользователя, указанного опцией ssh_user, который позволяет этому пользователю подключаться к виртуальным машинам (для которых предполагается создание резервных копий) в проекте OpenStack без ввода пароля.

Если указать параметр для region, то его значение будет использовано совместно с username, password, domain, project_id в запросе токена аутентификации для взаимодействия с API. По умолчанию значение — NONE, т.е. region не будет фигурировать при запросе токена аутентификации для взаимодействия с API.

Эта версия модуля содержит конфигурационный файл, параметры которого могут отличаться от текущей версии, поэтому при обновлении модуля на новую версию также обновляется и его конфигурационный файл. Для переноса значений параметров настроек из старого конфигурационного файла в новый предусмотрен механизм слияния конфигурационных файлов.

Может существовать 3 версии конфигурационного файла:

  • /opt/rubackup/etc/rb_module_openstack.conf — текущий конфигурационный файл модуля. После слияния будет переименован в rb_module_openstack_old.conf.

  • /opt/rubackup/etc/rb_module_openstack_old.conf — старый конфигурационный файл, который был загружен в предыдущее обновление или при установке модуля.

  • /opt/rubackup/etc/rb_module_openstack_upgrade.conf — конфигурационный файл обновления. Должен быть создан вручную.

Механизм слияния конфигурационных файлов запускается автоматически при обновлении пакета deb или rpm.

Автоматическое обновление конфигурационного файла

Автоматическое обновление конфигурационного файла выполняется при обновлении пакетов deb или rpm и не требует действий от пользователя.

Порядок автоматического обновления:

  1. Текущий конфигурационный файл rb_module_openstack.conf переименовывается в rb_module_openstack_old.conf.

  2. Создается файл /opt/rubackup/etc/rb_module_openstack.conf, который далее будет использован в качестве текущего.

  3. В созданный файл rb_module_openstack.conf добавляются параметры конфигурационного файла, которые поставляются в пакете deb или rpm. При этом все параметры закомментированы (выставлен символ # перед каждой строкой).

  4. Происходит слияние старого конфигурационного файла, конфигурационного файла обновления и нового конфигурационного файла, который поставляется в пакете, при этом:

    • Значение каждого параметра берется из конфигурационного файла обновления.

    • Если в конфигурационном файле обновления параметра нет, то значение берется из старого конфигурационного файла.

    • Если в старом конфигурационном файле значение параметра отсутствует, то такое значение:

      • Добавляется, если это обязательный параметр. Добавляется без значения.

      • Не добавляется, если настройка не обязательная.

    • Если у обязательного параметра нет значения, то при установке пакета возникнет ошибка. Информацию об ошибке можно посмотреть в логе установки:

100000000000037B0000005A0F341A55AE18CCE2

В результате автоматического обновления будут обновлены конфигурационные файлы rb_module_openstack.conf и rb_module_openstack_vol.conf. Модуль Openstack будет готов к работе.

При слиянии конфигурационных файлов будут удалены все комментарии из старого конфигурационного файла.

Если при обновлении конфигурационного файла возникли ошибки, то пользователю необходимо проверить корректность /opt/rubackup/etc/rb_module_openstack.conf и /opt/rubackup/etc/rb_module_openstack_vol.conf и при необходимости заполнить параметры вручную.