Резервное копирование и восстановление#

Резервное копирование – это процесс создания резервной копии, то есть данных, которые необходимы для восстановления платформы Astra Automation.

Резервная копия представляет собой единый файл архива /var/backups/astra-automation/astra-automation-backup-<date>.tar.gz, где <date> – дата и время создания резервной копии. Архив содержит следующие данные:

  • информация о настройках системы;

  • ключи шифрования паролей и секретов базы данных;

  • каталог с локальными копиями проектов;

  • резервная копия базы данных;

  • сертификаты.

Структура архива резервной копии#

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

├── ac01                        # Каталог с настройками и данными первого узла Automation Controller
│   ├── conf
│   └── projects
├── ac02                        # Каталог с настройками и данными второго узла Automation Controller
│   ├── conf
│   └── projects
├── astra_automation.version    # Файл с информацией о версии платформы
├── automationedacontroller     # Каталог с настройками и данными всех узлов Event-Driven Automation
│   └── automationedacontroller
│       ├── automationedacontroller.db
│       └── conf
├── automationgateway           # Каталог с настройками и данными всех узлов шлюза
│   └── automationgateway
│       ├── automationgateway.db
├── automationhub               # Каталог с настройками и данными всех узлов Private Automation Hub
│   └── automationhub
│       ├── automationhub.db
│       ├── database_fields.symmetric.key
│       └── var_lib_pulp
├── common                      # Каталог с криптографическим ключом Automation Controller
│   ├── SECRET_KEY
│   └── version
└── postgres                    # Резервная копия базы данных Automation Controller
    ├── aa-controller.db
    ├── instance_group_map_cleanup.sql
    └── instance_group_map.sql

Архив включает следующие файлы:

  • <node>.tar.gz – архив с настройками и данными Automation Controller.

    Здесь <node> – название узла из группы инвентаря automationcontroller.

  • astra_automation.version – файл с информацией о версии Astra Automation, в которой была создана резервная копия.

  • automationedacontroller.tar.gz – архив с настройками и данными Event-Driven Automation. Криптографический ключ контроллера Event-Driven Automation (файл SECRET_KEY) хранится внутри данного архива.

  • automationgateway.tar.gz – архив с настройками и данными шлюза.

  • automationhub.tar.gz – архив с настройками и данными Private Automation Hub. Криптографический ключ Private Automation Hub (SECRET_KEY) хранится внутри данного архива.

  • common.tar.gz – архив с криптографическим ключом Automation Controller.

  • postgres.tar.gz – резервная копия базы данных Automation Controller.

Ниже приведено описание содержимого каталогов компонентов, входящих в резервную копию платформы Astra Automation.

Automation Controller#

В резервной копии для каждого узла Automation Controller создается отдельный каталог, содержащий его настройки и локальные данные.

Пример структуры каталога узла Automation Controller:

ac01
├── conf
│   ├── conf.d
│   │   ├── aa_setup_custom_variables.py
│   │   ├── container_groups.py
│   │   ├── execution_environments.py
│   │   ├── gateway.py
│   │   ├── ha.py
│   │   └── subscription_usage_model.py
│   ├── settings.py
│   ├── tower.cert
│   ├── tower.key
│   └── uwsgi.ini
└── projects

Здесь:

  • conf – каталог с настройками конкретного узла Automation Controller:

    • conf.d – каталог с дополнительными модулями настройки, автоматически загружаемыми при запуске контроллера:

      • aa_setup_custom_variables.py – пользовательские параметры, заданные при установке и настройке платформы;

      • container_groups.py – настройки контейнерных групп;

      • execution_environments.py – описание EE, доступных для выполнения заданий;

      • gateway.py – параметры взаимодействия со шлюзом;

      • ha.py – настройки HA;

      • subscription_usage_model.py – параметры учета использования подписки.

    • settings.py – основной файл настроек Automation Controller.

    • tower.cert – сертификат TLS Automation Controller.

    • tower.key – закрытый ключ сертификата TLS.

    • uwsgi.ini – настройки сервиса uWSGI.

  • projects – каталог с проектами автоматизации.

Event-Driven Automation#

Данные Event-Driven Automation сохраняются в одном каталоге, независимо от количества узлов компонента в кластере.

Пример структуры:

automationedacontroller
└── automationedacontroller
    ├── automationedacontroller.db
    └── conf
        ├── SECRET_KEY
        └── settings

Здесь:

  • automationedacontroller.db – локальная база данных Event-Driven Automation, содержащая настройки и служебные данные компонента.

  • conf – каталог с файловой конфигурацией Event-Driven Automation:

    • SECRET_KEY – файл с криптографическим ключом, используемым компонентом для подписи данных и защиты секретов.

    • settings – файл с настройками Event-Driven Automation.

Gateway#

Данные шлюза сохраняются в одном каталоге для всех узлов компонента.

Пример структуры:

automationgateway
└── automationgateway
    ├── automationgateway.db
    └── conf
        └── SECRET_KEY

Здесь:

  • automationgateway.db – локальная база данных шлюза, содержащая конфигурационные и служебные данные.

  • conf – каталог с настройками шлюза:

    • SECRET_KEY – криптографический ключ, используемый шлюзом для защиты данных и аутентификации.

Private Automation Hub#

Private Automation Hub сохраняет собственные данные и артефакты в отдельном каталоге резервной копии.

Пример структуры:

automationhub
└── automationhub
    ├── automationhub.db
    ├── database_fields.symmetric.key
    └── var_lib_pulp
        └── media
            └── artifact

Здесь:

  • automationhub.db – локальная база данных Private Automation Hub, содержащая метаданные репозиториев и коллекций.

  • database_fields.symmetric.key – симметричный ключ, используемый для шифрования данных в базе Private Automation Hub.

  • var_lib_pulp – каталог с данными сервиса Pulp:

    • media/artifact – хранилище артефактов и файлов коллекций Ansible.

Общие сведения#

В каталоге common хранятся криптографические данные платформы, используемые Automation Controller.

Пример структуры:

common
├── SECRET_KEY
└── version

Здесь:

  • SECRET_KEY – основной криптографический ключ Automation Controller, используемый для подписи сессий, шифрования секретов и других важных операций;

  • version – служебный файл с информацией о версии платформы.

База данных#

Каталог postgres содержит резервную копию базы данных Automation Controller и вспомогательные сценарии SQL, используемые при восстановлении.

Пример структуры:

postgres
├── aa-controller.db
├── instance_group_map_cleanup.sql
└── instance_group_map.sql

Здесь:

  • aa-controller.db – резервная копия базы данных Automation Controller;

  • instance_group_map.sql – сценарий SQL для восстановления сопоставления групп узлов контроллера;

  • instance_group_map_cleanup.sql – сценарий SQL для очистки данных групп узлов контроллера перед восстановлением.

Требования к узлу#

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

  • установленный пакет astra-automation-setup;

  • корректно заполненный файл /opt/rbta/aa/astra-automation-setup/inventory.

Утилита назначает владельцем создаваемого файла пользователя, указанного в переменной ansible_user раздела [all:vars] инвентаря. Если эта переменная отсутствует, то этим пользователем будет admin.

Пример настройки:

[all:vars]
ansible_user='astra'

Предупреждение

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

При установке с помощью коллекции эти требования соблюдаются на узле с примененной ролью astra.aa_controller.aac.

Резервное копирование#

Для выполнения резервного копирования выполните следующие действия:

  1. Убедитесь, что в файле inventory в разделе [all:vars] значением параметра ansible_user является название учетной записи пользователя ОС установочного узла, например:

    [all:vars]
    ansible_user='astra'
    
  2. Для выполнения резервного копирования выполните команду:

    sudo ./aa-setup -b
    

По умолчанию резервная копия сохраняется в каталог /var/backups/astra-automation/. Чтобы сохранить резервную копию в другой каталог, укажите полный путь нему в качестве позиционного аргумента после аргумента -b, например:

sudo ./aa-setup -b /opt/backups/

В каталоге для хранения резервных копий также создается символическая ссылка astra-automation-backups-latest.tar.gz, которая всегда указывает на самую новую резервную копию в каталоге.

Восстановление из резервной копии#

Для восстановления Astra Automation из резервной копии выполните следующие действия:

  1. Скопируйте архив с резервной копией в каталог /var/backups/astra-automation/.

  2. Перейдите в каталог /opt/rbta/aa/astra-automation-setup/ и запустите утилиту aa-setup с аргументом -r:

    sudo ./aa-setup -r
    

    По умолчанию утилита aa-setup восстанавливает резервную копию из самого нового архива, размещенного в каталоге /var/backups/astra-automation/. Чтобы использовать для восстановления другой архив, укажите полный путь к нему в качестве позиционного аргумента после аргумента -r, например:

    sudo ./aa-setup -r /var/backups/astra-automation-backup-16-06-2024-155236.tar.gz
    
  3. Если резервная копия была создана в версии платформы отличающейся от той, в которой она восстанавливается, утилиту aa-setup обязательно нужно запустить еще раз:

    sudo ./aa-setup
    

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

  4. Для проверки корректности восстановления выполните вход в веб-интерфейс контроллера от имени администратора и проверьте содержимое разделов.