Установка Smart Forms на отдельный сервер

  1. Содержимое дистрибутива из поставки скопировать на сервер Smart Forms: из папки images необходимо скопировать файлы smart-forms-app.tar.gz, smart-forms-db.tar.gz,
    viloader-app.tar.gz, viloader-db.tar.gz, python-script-service.tar.gz,
     promtail.tar.gz
    , сохраняя структуру вложенных элементов.

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

  2. На сервере перейти в скопированную папку с дистрибутивом.
  3. Сделать исполняемыми скрипты load_images.sh, load_from_release_dockerhub.sh, выполнив команду:

    sudo chmod +x *.sh
  4.  Установка.
    1. Для локальной установки:

      На сервере Smart-Forms перейти в скопированную папку с дистрибутивом и запустить скрипт load_images.sh с правами суперпользователя:

      sudo ./load_images.sh --with-smart-forms yes --with-dashboard-server no --with-viqube no
      Установка с указанными параметрами означает, что на данном сервере будут установлены только компоненты SmartForms.
    2. Для установки из Yandex Container Registry:

      Перед запуском скрипта необходимо авторизоваться в Yandex Container Registry, используя следующую команду:

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

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

      На сервере Smart-Forms перейти в скопированную папку с дистрибутивом и запустить скрипт load_from_release_dockerhub.sh с правами суперпользователя:

      Установка версии 2.29
      sudo ./load_from_release_dockerhub.sh -t 2.29 --with-smart-forms yes --with-dashboard-server no --with-viqube no
      Установка версии 2.29.1
      sudo ./load_from_release_dockerhub.sh -t 2.29.1 --with-smart-forms yes --with-dashboard-server no --with-viqube no
      Установка с указанными параметрами означает, что на данном сервере будут установлены только компоненты Smart-Forms
      • -t 2.29|2.29.1

      здесь -t 2.29|2.29.1 означает, что скрипту необходимо загрузить образы релиза версии 2.29 или 2.29.1

  5. Настроить сервер Smart-Forms.
    1. На сервере с основной частью платформы выполнить

      docker swarm join-token worker

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

      docker swarm init --force-new-cluster

      Из вывода сохранить строчку вида "docker swarm join --token <TOKEN> <IP>"

    2. На сервере Smart-Forms выполнить сохранённую команду из предыдущего пункта
  6. Добавить метку для сервера Smart-Forms.
    1. На основном сервере выполнить

      docker node ls
    2. В выводе должны быть несколько нод. В строчке со звёздочкой указан ID "мастер" ноды, в других "воркер" ноды, на которые можно установить Smart-Forms.
    3. Выполнить

      docker node update --label-add smart-forms=true <worker_node_id>
      
      # Если на мастер ноде уже ранее запускалась платформа с Smart Forms,
      # то нужно вручную удалить тег smart-forms с этой ноды:
      docker node update --label-rm smart-forms <master_node_id>

      <worker_node_id> - айдишник нужной "воркер" ноды
      <master_node_id> - айдишник мастер ноды с основной частью платформы

      Для более подробного вывода по "воркер" нодам, можно воспользоваться:

      docker inspect -f "{{.ID}} {{.Status.Addr}} {{.Spec.Labels}}" $(docker node ls -q)

  7. Создать необходимые папки на сервере Smart-Forms:

    sudo mkdir -p /docker-volume/smart-forms && \
    sudo mkdir -p /docker-volume/smart-forms/postgresql && \
    sudo mkdir -p /docker-volume/proxy/proxy.crt
    
    sudo mkdir -p /docker-volume/viloader/application/files && \
    sudo mkdir -p /docker-volume/viloader/application/logs && \
    sudo mkdir -p /docker-volume/viloader/application/configs && \
    sudo mkdir -p /docker-volume/viloader/database
    
    sudo mkdir -p /docker-volume/python-script-service
  8. На основном сервере выполнить запуск платформы.

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