Обновление версии#

Обновление версии Astra Automation осуществляется с помощью утилиты aa-setup.

Подготовка к обновлению#

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

  • На период обновления любым удобным способом заблокируйте доступ пользователей к компонентам платформы и дождитесь выполнения запущенных заданий. Это позволит создать резервную копию без потери данных и избежать ошибок при обновлении схем баз данных.

    Совет

    Одним из решений может быть развертывание отдельного сервера, показывающего статичную HTML-страницу с уведомлением о технических работах. В этом случае на период миграции настройте разрешение доменных имен компонентов платформы таким образом, чтобы они указывали на этот сервер. Чтобы избежать подключений по IP-адресам, блокируйте поступающий от пользователей трафик или настройте его перенаправление на другой IP-адрес.

  • Если СУБД развернута не средствами платформы (внешняя СУБД), подготовьте кластер PostgreSQL версии 15 для переноса в него данных платформы. Далее этот кластер будет называться целевым.

СУБД развернута средствами платформы, версия ОС не изменяется#

Если СУБД развернута средствами платформы, а миграция на ОС Astra Linux Special Edition 1.8.1uu1 не планируется, выполните на установочном узле следующие действия:

  1. Перейдите в каталог /opt/rbta/aa/astra-automation-setup:

    cd /opt/rbta/aa/astra-automation-setup/
    
  2. Если в составе платформы развернут Private Automation Hub, выполните дополнительные действия:

    1. Создайте 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
      
    2. Запустите выполнение созданного playbook с инвентарем установщика платформы, например:

      ansible-playbook -i ./inventory write_version.yml
      
  3. Запустите обновление:

    sudo ./aa-setup --upgrade
    

Внешняя СУБД, версия ОС не изменяется#

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

  • Для хранения данных используется внешняя СУБД.

  • Версия ОС на узлах платформы не меняется.

Подключитесь к установочному узлу и выполните следующие действия:

  1. Конфигурационный файл /etc/apt/sources.list.d/astra-automation.list приведите к следующему виду:

    deb https://dl.astralinux.ru/aa/aa-debs-for-alse-1.7 1.2 main
    
  2. Обновите список доступных пакетов:

    sudo apt update
    
  3. Обновите пакет astra-automation-setup:

    sudo apt install astra-automation-setup --yes
    
  4. Запустите обновление платформы:

    sudo ./aa-setup --upgrade
    
  5. Если в составе платформы развернут Private Automation Hub, использующий хранилище S3, добавьте в инвентарь установщика глобальную переменную automationhub_backup_collections со значением false:

    [all:vars]
    # ...
    automationhub_backup_collections = false
    
    ---
    all:
      # ...
      vars:
        # ...
        automationhub_backup_collections: false
    

    Это позволит уменьшить размер резервной копии за счет исключения из нее файлов, загруженных в Private Automation Hub.

  6. Создайте резервную копию:

    sudo ./aa-setup --backup
    
  7. В инвентаре установщика укажите параметры подключения к кластеру-приемнику.

  8. Запустите восстановление данных из резервной копии:

    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.

Обновление выполняется в несколько этапов:

  1. Подготовка существующей инфраструктуры к обновлению.

  2. Перенос данных.

  3. Миграция БД и конфигурации платформы.

Подготовка существующей инфраструктуры к обновлению#

Подключитесь к установочному узлу и выполните следующие действия:

  1. Конфигурационный файл /etc/apt/sources.list.d/astra-automation.list приведите к следующему виду:

    deb https://dl.astralinux.ru/aa/aa-debs-for-alse-1.7 1.2 main
    
  2. Обновите список доступных пакетов:

    sudo apt update
    
  3. Обновите пакет astra-automation-setup:

    sudo apt install astra-automation-setup --yes
    
  4. Если в составе платформы развернут Private Automation Hub, использующий хранилище S3, добавьте в инвентарь установщика глобальную переменную automationhub_backup_collections со значением false:

    [all:vars]
    # ...
    automationhub_backup_collections = false
    
    ---
    all:
      # ...
      vars:
        # ...
        automationhub_backup_collections: false
    

    Это позволит уменьшить размер резервной копии за счет исключения из нее файлов, загруженных в Private Automation Hub.

Перенос данных#

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

  1. Создайте резервную копию:

    sudo ./aa-setup --backup
    
  2. В инвентарь установщика внесите изменения, соответствующие новой конфигурации платформы, в том числе параметры подключения к целевому кластеру PostgreSQL.

  3. Запустите развертывание платформы:

    sudo ./aa-setup --repo-url https://dl.astralinux.ru/aa/aa-debs-for-alse-1.8
    
  4. Запустите восстановление данных из резервной копии:

    sudo ./aa-setup --restore <backup>
    

    Здесь <backup> – путь к архиву в формате .tar.gz, в котором хранится созданная ранее резервная копия.

    Примечание

    По умолчанию утилита aa-setup сохраняет резервные копии в каталог /tmp/backups/astra-automation/.

Миграция БД и конфигурации платформы#

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

  1. Если в составе платформы присутствует Private Automation Hub, подключитесь к его узлам и убедитесь, что в файле /var/lib/pulp/bin/gunicorn указана версия Python 3.11. Если версия интерпретатора ниже указанной, внесите соответствующие изменения.

  2. Подключитесь к любому из управляющих узлов Automation Controller и выполните команды:

    1. Установка Automation Controller CLI:

      sudo apt install automation-controller-cli --yes
      
    2. Миграция схемы базы данных:

      sudo awx-manage migrate
      
    3. Экспорт 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 – исполняющие узлы.

    4. Синхронизация топологии:

      sudo awx-manage sync_topology $cn1,$cn2,$ex1,$ex2
      
    5. Настройка типов узлов:

      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
      
    6. Настройка рецепторов:

      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
      
    7. Настройка связей между узлами:

      sudo awx-manage register_peers $cn1 --exact $cn2 $ex1 $ex2
      sudo awx-manage register_peers $cn2 --exact $ex1 $ex2