Обновление версии#
Обновление версии Astra Automation осуществляется с помощью утилиты aa-setup
.
Подготовка к обновлению#
Для подготовки к обновлению выполните следующие действия:
На период обновления любым удобным способом заблокируйте доступ пользователей к компонентам платформы и дождитесь выполнения запущенных заданий. Это позволит создать резервную копию без потери данных и избежать ошибок при обновлении схем баз данных.
Совет
Одним из решений может быть развертывание отдельного сервера, показывающего статичную HTML-страницу с уведомлением о технических работах. В этом случае на период миграции настройте разрешение доменных имен компонентов платформы таким образом, чтобы они указывали на этот сервер. Чтобы избежать подключений по IP-адресам, блокируйте поступающий от пользователей трафик или настройте его перенаправление на другой IP-адрес.
Если СУБД развернута не средствами платформы (внешняя СУБД), подготовьте кластер PostgreSQL версии 15 для переноса в него данных платформы. Далее этот кластер будет называться целевым.
СУБД развернута средствами платформы, версия ОС не изменяется#
Если СУБД развернута средствами платформы, а миграция на ОС Astra Linux Special Edition 1.8.1uu1 не планируется, выполните на установочном узле следующие действия:
Перейдите в каталог
/opt/rbta/aa/astra-automation-setup
:cd /opt/rbta/aa/astra-automation-setup/
Если в составе платформы развернут Private Automation Hub, выполните дополнительные действия:
Создайте playbook
write_version.yml
со следующим содержимым:--- - name: Write product version to /etc hosts: automationhub become: true tasks: - name: Write product version to /etc copy: content: "{{ product_version | default('1.1-upd1') }}" dest: "{{ product_version_filename | default('/etc/astra_automation.version') }}" force: true
Запустите выполнение созданного playbook с инвентарем установщика платформы, например:
ansible-playbook -i ./inventory write_version.yml
Запустите обновление:
sudo ./aa-setup --upgrade
Внешняя СУБД, версия ОС не изменяется#
Особенности обновления такой конфигурации:
Для хранения данных используется внешняя СУБД.
Версия ОС на узлах платформы не меняется.
Подключитесь к установочному узлу и выполните следующие действия:
Конфигурационный файл
/etc/apt/sources.list.d/astra-automation.list
приведите к следующему виду:deb https://dl.astralinux.ru/aa/aa-debs-for-alse-1.7 1.2 main
Обновите список доступных пакетов:
sudo apt update
Обновите пакет
astra-automation-setup
:sudo apt install astra-automation-setup --yes
Запустите обновление платформы:
sudo ./aa-setup --upgrade
Если в составе платформы развернут Private Automation Hub, использующий хранилище S3, добавьте в инвентарь установщика глобальную переменную
automationhub_backup_collections
со значениемfalse
:[all:vars] # ... automationhub_backup_collections = false
--- all: # ... vars: # ... automationhub_backup_collections: false
Это позволит уменьшить размер резервной копии за счет исключения из нее файлов, загруженных в Private Automation Hub.
Создайте резервную копию:
sudo ./aa-setup --backup
В инвентаре установщика укажите параметры подключения к кластеру-приемнику.
Запустите восстановление данных из резервной копии:
sudo ./aa-setup --restore <backup>
Здесь <backup> – путь к архиву в формате
.tar.gz
, в котором хранится созданная ранее резервная копия.Примечание
По умолчанию утилита
aa-setup
сохраняет резервные копии в каталог/tmp/backups/astra-automation/
.
Внешняя СУБД, миграция на Astra Linux Special Edition 1.8.1uu1#
Особенности обновления такой конфигурации:
Для хранения данных используется внешняя СУБД.
Все операции выполняются на существующем установочном узле под управлением ОС Astra Linux Special Edition 1.7.x.
На узлах платформы версия ОС повышается с Astra Linux Special Edition 1.7.x до Astra Linux Special Edition 1.8.1uu1.
Обновление выполняется в несколько этапов:
Подготовка существующей инфраструктуры к обновлению#
Подключитесь к установочному узлу и выполните следующие действия:
Конфигурационный файл
/etc/apt/sources.list.d/astra-automation.list
приведите к следующему виду:deb https://dl.astralinux.ru/aa/aa-debs-for-alse-1.7 1.2 main
Обновите список доступных пакетов:
sudo apt update
Обновите пакет
astra-automation-setup
:sudo apt install astra-automation-setup --yes
Если в составе платформы развернут Private Automation Hub, использующий хранилище S3, добавьте в инвентарь установщика глобальную переменную
automationhub_backup_collections
со значениемfalse
:[all:vars] # ... automationhub_backup_collections = false
--- all: # ... vars: # ... automationhub_backup_collections: false
Это позволит уменьшить размер резервной копии за счет исключения из нее файлов, загруженных в Private Automation Hub.
Перенос данных#
Для переноса данных выполните следующие действия:
Создайте резервную копию:
sudo ./aa-setup --backup
В инвентарь установщика внесите изменения, соответствующие новой конфигурации платформы, в том числе параметры подключения к целевому кластеру PostgreSQL.
Запустите развертывание платформы:
sudo ./aa-setup --repo-url https://dl.astralinux.ru/aa/aa-debs-for-alse-1.8
Запустите восстановление данных из резервной копии:
sudo ./aa-setup --restore <backup>
Здесь <backup> – путь к архиву в формате
.tar.gz
, в котором хранится созданная ранее резервная копия.Примечание
По умолчанию утилита
aa-setup
сохраняет резервные копии в каталог/tmp/backups/astra-automation/
.
Миграция БД и конфигурации платформы#
Для миграции схемы базы данных Automation Controller и конфигурации платформы выполните следующие действия:
Если в составе платформы присутствует Private Automation Hub, подключитесь к его узлам и убедитесь, что в файле
/var/lib/pulp/bin/gunicorn
указана версия Python 3.11. Если версия интерпретатора ниже указанной, внесите соответствующие изменения.Подключитесь к любому из управляющих узлов Automation Controller и выполните команды:
Установка Automation Controller CLI:
sudo apt install automation-controller-cli --yes
Миграция схемы базы данных:
sudo awx-manage migrate
Экспорт IP-адресов узлов Automation Controller в переменные окружения, например:
export cn1='192.168.56.1' export cn2='192.168.56.2' export ex1='192.168.56.11' export ex2='192.168.56.12'
Здесь
cn1
,cn2
– управляющие узлы, аex1
иex2
– исполняющие узлы.Синхронизация топологии:
sudo awx-manage sync_topology $cn1,$cn2,$ex1,$ex2
Настройка типов узлов:
sudo awx-manage provision_instance --hostname $cn1 --node_type control sudo awx-manage provision_instance --hostname $cn2 --node_type control sudo awx-manage provision_instance --hostname $ex1 --node_type execution sudo awx-manage provision_instance --hostname $ex2 --node_type execution
Настройка рецепторов:
sudo awx-manage add_receptor_address --instance $cn1 --address $cn1 --port 27199 --canonical sudo awx-manage add_receptor_address --instance $cn2 --address $cn2 --port 27199 --canonical sudo awx-manage add_receptor_address --instance $ex1 --address $ex1 --port 27199 --canonical sudo awx-manage add_receptor_address --instance $ex2 --address $ex2 --port 27199 --canonical
Настройка связей между узлами:
sudo awx-manage register_peers $cn1 --exact $cn2 $ex1 $ex2 sudo awx-manage register_peers $cn2 --exact $ex1 $ex2