IVA ДОКУМЕНТАЦИЯ ОБНОВЛЕНИЯ

Обновление IVA Terra и откат к предыдущей версии

Процедура обновления включает подготовку файлов новой версии и создание резервных копий compose-файла и базы данных. Резервные копии используются для отката к предыдущей версии.

Обновление IVA Terra

Обновление IVA Terra до версии 6.X выполняется в каталоге установки предыдущей версии 5.X. В каталоге установки содержатся файл docker-compose.yml, каталоги данных TERRA_DATA/, TERRA_LOGS/ и другие.

При обновлении работа IVA Terra прерывается на время остановки контейнеров, резервного копирования базы данных и запуска новой версии

Для обновления IVA Terra необходимо:

  1. создать в директории отдельный каталог для файлов новой версии (например ~/terra_v6.0), выполнив команду:

    Новые архивы Docker-образов необходимо разместить отдельно от каталога установки и развертывания IVA Terra
    mkdir ~/terra_v6.0 && cd ~/terra_v6.0
  2. в созданный каталог загрузить файлы для установки IVA Terra:

    • compose-файл для используемого режима развертывания (например docker-compose-full-v6.0.yml)

    • файл md5summ_v6.0.txt

    • архивы образов *.img.gz только для используемого режима развертывания

    • скрипт deploy.terra_v6.0.sh

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

    md5sum -c --ignore-missing md5summ_v6.0.txt
    Параметр --ignore-missing обязателен — без него отсутствующие архивы других вариантов развертывания дадут результат FAILED. Для каждого загруженного файла в выводе команды должно быть OK
  4. загрузить Docker-образы из архивов, выполнив команды:

    cd ~/terra_v6.0
    
    for f in *.img.gz; do echo "== $f"; gunzip -c "$f" | docker load; done
  5. сверить количество загруженных образов с составом используемого режима развертывания, выполнив команду:

    docker images | grep -cE 'v6.0|terra_postgres|terra_rabbitmq'
  6. создать резервную копию рабочего docker-compose.yml в каталоге установки, выполнив команду:

    cd <каталог установки>
    cp docker-compose.yml docker-compose.yml.v5.bak
  7. остановить контейнеры, выполнив команду:

    Для пересоздания контейнеров на новых образах использовать команду docker compose down вместо stop
    docker compose down
  8. создать резервную копию каталога POSTGRES_TERRA_CONTROL после остановки контейнеров, выполнив команду:

    tar czf ~/backup_db_$(date +%F).tar.gz POSTGRES_TERRA_CONTROL
  9. создать каталог VM_DATA для метрик сервиса Terra Metrics, выполнив команду:

    mkdir -m 0777 VM_DATA
  10. заменить compose-файл шаблоном для используемого режима развертывания. Пример команды для режима Full:

    cp ~/terra_v6.0/docker-compose-full-v6.0.yml docker-compose.yml
  11. сравнить новый файл docker-compose.yml с резервной копией docker-compose.yml.v5.bak и перенести измененные ранее настройки, например имя сети, порты, количество обработчиков и номера видеокарт

  12. если использовалось несколько обработчиков online/offline, проверить наличие строки монтирования моделей в новом compose-файле:

          - ./TERRA_MODELS:/models:ro
  13. запустить контейнеры и проверить их состояние, выполнив команды:

    docker compose up -d
    
    docker compose ps
    При первом запуске веб-панель администрирования применяет миграции базы данных. Ожидание может занять несколько минут
  14. выполнить обязательные действия после установки IVA Terra и проверить работу системы

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

    Docker-образы версии v5.0 необходимо сохранять до завершения проверки новой версии

    Образы и резервные копии docker-compose.yml.v5.bak и базы данных можно удалить, когда возможность отката больше не требуется

Откат IVA Terra к предыдущей версии

Для отката к предыдущей версии IVA Terra (например v5.X) необходимо:

  1. остановить контейнеры текущей версии v6.X, выполнив команды:

    cd <каталог установки>
    
    docker compose down
  2. восстановить базу данных из резервной копии, выполнив команды:

    Команда rm -rf POSTGRES_TERRA_CONTROL удаляет текущий каталог базы данных. Перед ее выполнением необходимо убедиться, что архив резервной копии доступен

    rm -rf POSTGRES_TERRA_CONTROL
    
    tar xzf ~/backup_db_<дата>.tar.gz

    где <дата> — дата создания архива

  3. восстановить compose-файл предыдущей версии, выполнив команду:

    cp docker-compose.yml.v5.bak docker-compose.yml
  4. запустить контейнеры предыдущей версии, выполнив команду:

    docker compose up -d