Обновление компонентов, установленных на разных серверах

Если предполагается обновление платформы, используя Yandex Container Registry, то копирование файлов дистрибутива не требуется.

Проверка прав docker

Перед обновлением важно убедиться, что у пользователя, из-под которого будет происходить обновление, есть все права на выполнение команды docker или производить обновление из-под суперпользователя. Подробнее здесь Общая часть обновления.

Обновление через Yandex Container Registry

  1. Войдите в Yandex Container Registry:

    docker login \
      --username oauth \
      --password <token> \
      cr.yandex 

    где <token> -  токен, полученный из запроса https://oauth.yandex.ru/authorize?response_type=token&client_id=1a6990aa636648e9b2ef855fa7bec2fb

  2. На всех серверах установите образ обновления:

    Обновление на версию 2.30
    docker pull cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/update:2.30_3.1
  3. На основном сервере платформы:
    • Создайте новую папку и перейдите в неё. Скрипты запуска появятся в текущей директории.

    • Запустите обновление на основном сервере платформы.

      Обновление на версию 2.30
      docker run -it \
          -v /var/run/docker.sock:/var/run/docker.sock \
          -v /docker-volume:/docker-volume \
          -v /var/lib/visiology:/mnt/visiology \
          -v /docker-volume/proxy:/mnt/certs \
          -v $(pwd):/mnt/volume \
          -v $HOME/.docker:/root/.docker \
          cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/update:2.30_3.1 \
              -l hub -m dashboard-server $(pwd) \
              $(id -u):$(cut -d: -f3 < <(getent group $(id -gn))) | \
      tee update-log-$(date +%Y-%m-%d-%H-%M-%z).txt
  4. Если ViQube установлен на другом сервере:
    • Запустите обновление на сервере ViQube.

      Обновление на версию 2.30
      docker run -it \
          -v /var/run/docker.sock:/var/run/docker.sock \
          -v /docker-volume:/docker-volume \
          -v /var/lib/visiology:/mnt/visiology \
          -v /docker-volume/proxy:/mnt/certs \
          -v $(pwd):/mnt/volume \
          -v $HOME/.docker:/root/.docker \
          cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/update:2.30_3.1 \
              -l hub -m viqube $(pwd) \
              $(id -u):$(cut -d: -f3 < <(getent group $(id -gn))) | \
      tee update-log-$(date +%Y-%m-%d-%H-%M-%z).txt
  5. Если Smart Forms установлен на другом сервере:
    • Запустите обновление на сервере Smart Forms.

      Обновление на версию 2.30
      docker run -it \
          -v /var/run/docker.sock:/var/run/docker.sock \
          -v /docker-volume:/docker-volume \
          -v /var/lib/visiology:/mnt/visiology \
          -v /docker-volume/proxy:/mnt/certs \
          -v $(pwd):/mnt/volume \
          -v $HOME/.docker:/root/.docker \
          cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/update:2.30_3.1 \
              -l hub -m smart-forms $(pwd) \
              $(id -u):$(cut -d: -f3 < <(getent group $(id -gn))) | \
      tee update-log-$(date +%Y-%m-%d-%H-%M-%z).txt
    • В файле /docker-volume/viloader/application/configs/config.json изменить значение параметра Server=visiology_viloader-db на Server=viloader-db

      Если при запуске в кластерном режиме возникли проблемы, то необходимо выполнить команду на всех серверах.

      docker swarm leave -f

      И произвести недостающие действия из секции Установка компонентов на разные серверы.

Обновление через образы

  1. На всех серверах платформы:
    • Скопируйте на сервер образ обновления update.tar.gz в новый каталог.
    • Загрузите образ обновления в память:

      docker load < update.tar.gz
  2. На основном сервере платформы:
  • Скопировать на сервер оставшиеся образы из поставки с сохранением иерархии каталогов
  • Запустите обновление на основном сервере платформы.

    Обновление на версию 2.30
    docker run -it \
        -v /var/run/docker.sock:/var/run/docker.sock \
        -v /docker-volume:/docker-volume \
        -v /var/lib/visiology:/mnt/visiology \
        -v /docker-volume/proxy:/mnt/certs \
        -v $(pwd):/mnt/volume \
        -v $HOME/.docker:/root/.docker \
        cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/update:2.30_3.1 \
            -l local -m dashboard-server $(pwd) \
            $(id -u):$(cut -d: -f3 < <(getent group $(id -gn))) | \
    tee update-log-$(date +%Y-%m-%d-%H-%M-%z).txt

3.  Если ViQube установлен на другом сервере:

  • Скопируйте на сервер образы viqube.tar.gz, promtail.tar.gz из поставки в каталог images/v2
  • Запустите обновление на сервере ViQube.

    Обновление на версию 2.30
    docker run -it \
        -v /var/run/docker.sock:/var/run/docker.sock \
        -v /docker-volume:/docker-volume \
        -v /var/lib/visiology:/mnt/visiology \
        -v /docker-volume/proxy:/mnt/certs \
        -v $(pwd):/mnt/volume \
        -v $HOME/.docker:/root/.docker \
        cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/update:2.30_3.1 \
            -l local -m viqube $(pwd) \
            $(id -u):$(cut -d: -f3 < <(getent group $(id -gn))) | \
    tee update-log-$(date +%Y-%m-%d-%H-%M-%z).txt
    4. Если Smart Forms установлен на другом сервере:
  • Скопируйте на сервер образы smart-forms-app.tar.gz, smart-forms.tar.gz, viloader-app.tar.gz, viloader-db.tar.gz, python-script-service.tar.gz, promtail.tar.gz из поставки в каталог images/v2
  • Запустите обновление на сервере Smart-Forms.
Обновление на версию 2.30
docker run -it \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v /docker-volume:/docker-volume \
    -v /var/lib/visiology:/mnt/visiology \
    -v /docker-volume/proxy:/mnt/certs \
    -v $(pwd):/mnt/volume \
    -v $HOME/.docker:/root/.docker \
    cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/update:2.30_3.1 \
        -l local -m smart-forms $(pwd) \
        $(id -u):$(cut -d: -f3 < <(getent group $(id -gn))) | \
tee update-log-$(date +%Y-%m-%d-%H-%M-%z).txt

В файле /docker-volume/viloader/application/configs/config.json изменить значение параметра Server=visiology_viloader-db на Server=viloader-db


Если при запуске в кластерном режиме возникли проблемы, то необходимо выполнить команду на всех серверах.

docker swarm leave -f

И произвести недостающие действия из секции Установка компонентов на разные серверы.