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

Перед обновлением платформа обязательно должна быть запущена, так как происходит бэкап БД сервиса mongodb.

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

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

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

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

  1. Залогиниться в Yandex Container Registry на всех серверах. См. Общая часть обновления.
  2. На всех серверах установить образ обновления

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

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

      Обновление на версию 2.27
      docker run -it \
      	-v /var/run/docker.sock:/var/run/docker.sock \
      	-v /docker-volume:/docker-volume \
      	-v $(pwd):/mnt/volume \
      	-v $HOME/.docker:/root/.docker \
      	cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/update:2.27 \
          -l hub -m dashboard-server
    3. Сделать исполняемым скрипт run.sh, выполнив команду:

      sudo chmod +x *.sh
  4. Если ViQube установлен на другом сервере:
    1. Запустить обновление на сервере ViQube.

      Обновление на версию 2.27
      docker run -it \
      	-v /var/run/docker.sock:/var/run/docker.sock \
      	-v /docker-volume:/docker-volume \
      	-v $(pwd):/mnt/volume \
      	-v $HOME/.docker:/root/.docker \
      	cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/update:2.27 \
          -l hub -m viqube
  5. Если Smart Forms установлен на другом сервере:
    1. Запустить обновление на сервере Smart Forms.

      Обновление на версию 2.27
      docker run -it \
      	-v /var/run/docker.sock:/var/run/docker.sock \
      	-v /docker-volume:/docker-volume \
      	-v $(pwd):/mnt/volume \
      	-v $HOME/.docker:/root/.docker \
      	cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/update:2.27 \
          -l hub -m smart-forms
    2. На сервере Smart Forms создать создать папку /docker-volume/python-script-service, если она не была создана ранее

      sudo mkdir -p /docker-volume/python-script-service
  6. На основном сервере выполнить запуск платформы. Подробнее Запуск платформы.

    В параметры запуска run.sh необходимо выставить ключ --remote-viqube yes и/или --remote-sf yes

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

    docker swarm leave -f

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

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

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

      docker load < images/update.tar.gz
  2. На основном сервере платформы:
    1. Запустить обновление (скрипты для запуска появятся в текущей директории).

      Обновление на версию 2.27
      docker run -it \
      	-v /var/run/docker.sock:/var/run/docker.sock \
      	-v /docker-volume:/docker-volume \
      	-v $(pwd):/mnt/volume \
      	-v $HOME/.docker:/root/.docker \
      	cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/update:2.27 \
          -l local -m dashboard-server
    2. Сделать исполняемым скрипт run.sh, выполнив команду.

      sudo chmod +x *.sh
  3. Если ViQube установлен на другом сервере:
    1. Скопировать на сервер образы viqube.tar.gz, promtail.tar.gz из поставки и перейти в эту папку.
    2. Запустить обновление на сервере ViQube.

      Обновление на версию 2.27
      docker run -it \
      	-v /var/run/docker.sock:/var/run/docker.sock \
      	-v /docker-volume:/docker-volume \
      	-v $(pwd):/mnt/volume \
      	-v $HOME/.docker:/root/.docker \
      	cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/update:2.27 \
          -l local -m viqube
  4. Если Smart Forms установлен на другом сервере:
    1. Скопировать на сервер образы 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 из поставки и перейти в эту папку.
    2. Запустить обновление на сервере Smart-Forms.

      Обновление на версию 2.27
      docker run -it \
      	-v /var/run/docker.sock:/var/run/docker.sock \
      	-v /docker-volume:/docker-volume \
      	-v $(pwd):/mnt/volume \
      	-v $HOME/.docker:/root/.docker \
      	cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/update:2.27 \
          -l local -m smart-forms
    3. На сервере Smart Forms создать создать папку /docker-volume/python-script-service, если она не была создана ранее

      sudo mkdir -p /docker-volume/python-script-service
  5. На основном сервере выполнить запуск платформы. Подробнее Запуск платформы.

    В параметры запуска run.sh необходимо выставить ключ --remote-viqube yes и/или --remote-sf yes

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

    docker swarm leave -f

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