Руководство по установке#

Установка дополнительного ПО#

Для работы API необходимы Dotnet Core v.3.1+, RabbitMq v.3.8.3+, Erlang v.23.0+

Как установить Dotnet Core v.3.1+,

Выполните команду:

  • для CentOS

yum install aspnetcore-runtime-3.1
  • для AstraLINUX

apt-get install aspnetcore-runtime-3.1

Как установить RabbitMq v.3.8.3+ и Erlang v.23.0+

Для установки RabbitMq и Erlang необходимо:

  1. Установить пакет erlang:

yum install HTTPs://github.com/rabbitmq/erlang-rpm/releases/download/v23.0/erlang-23.0-1.el6.x86_64.rpm
  1. Установить пакет rabbitmq-server:

yum install HTTPs://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.3/rabbitmq-server-3.8.3-1.el8.noarch.rpm
  1. Запустить сервис RabbitMq:

systemctl start rabbitmq-server.service
  1. Включить плагин rabbitmq_management:

rabbitmq-plugins enable rabbitmq_management
  1. Дать права на чтение файлов rabbitmq:

chown -R rabbitmq:rabbitmq /var/lib/rabbitmq/
  1. Открыть порты 5672 и 15672:

firewall-cmd --zone=public --permanent    --add-port=5672/tcp          --add-port=15672/tcp
  1. Перезагрузить firewall:

firewall-cmd --reload
  1. Создать учетную запись rabbitmq:

rabbitmqctl add_user mqadmin mqadminpassword
  1. Установить роль админа:

rabbitmqctl set_user_tags mqadmin administrator
  1. Назначить права:

rabbitmqctl set_permissions -p / mqadmin ".*" ".*" ".*"
  1. Установить плагин rabbitmq-delayed-message-exchange:

  1. Скачать ez файл (ссылка на скачивание)

  2. Поместить его в директорию /usr/lib/rabbitmq/plugins ИЛИ /usr/lib/rabbitmq/lib/rabbitmq_server-{version}/plugins

  3. Запустить плагин:

rabbitmq-plugins enable rabbitmq_delayed_message_exchange

Установка API#

Чтобы развернуть сервис API, нужно использовать JasperDeploy и releaseJasper.zip. Пример команды для установки API:

sudo bash /home/user/JasperDeploy -installDir=/opt/Jasper -connectionString='Server= ;Port= ;Database= ;User Id= ;Password= ;' -JasperApiUrl='https:\/\/' -JasperUiUrl='https:\/\/'

где:

  • JasperApiUrl – адрес, который указывается в nginx для Jasper.service (API);

  • JasperUiUrl – адрес, который указывается в nginx для клиентского приложения «JasperAPI».

В этих параметрах вместо https может быть задан http (в nginx должна быть указана соответствующая настройка).

Если не будет использоваться nginx, то пример команды установки следующий:

sudo bash /home/user/JasperDeploy -installDir=/opt/Jasper -connectionString='Server= ;Port= ;Database= ;User Id= ;Password= ;' -JasperApiUrl='https:\/\/ip:5200' -JasperUiUrl='https:\/\/ip:5091'
  • JasperApiUrl – адрес, который указывается в nginx для Jasper.service (API);

  • JasperUiUrl – адрес, который указывается в nginx для клиентского приложения «JasperAPI».

Пример экрана успешной установки Jasper

../../../../_images/jasper.png

После установки API будут подняты следующие службы:

  • Jasper.service (API)

  • IdentityServerJasper.service + клиентское приложение по соответствующему адресу (для управления доступом и правами при работе с API, а также UI приложение для администрирования, пользователь admin/ Admin123$)

  • JasperRabbitMqConsumers (приложение для обработки сообщений RabbitMq)

Hosts#

Важно

  • Выполнить, если в DNS нет записи для интеграционного сервиса API.

  • Если данная настройка не будет выполнена, при запросе к API возникнет ошибка Name or service not known.

В файл hosts, расположенный на сервере, где развернут Jasper, необходимо прописать:

<ip_is> jasper.gemsdev.ru

где <ip_is> – ip-адрес машины, где развернут IdentiteServer4. На данный момент он поднимается автоматически рядом с API.

Установка модуля Jasper#

Для работы кнопки «Отправить» (отправка результата во внешнюю систему) необходимо установить экстрамодуль Gems.Module.Jasper. Чтобы установить модуль, добавьте в скрипт установки Системы параметр: -extraModule=Gems.Module.Jasper.

Пример команды установки вместе с экстрамодулем Gems.Module.Jasper:

sudo bash ../IASUnixDeploy -installDir=/opt/IAS -connectionString='Server= ;Port=5432;Database= ;User Id=postgres;Password= ;' -gHost=localhost -iasPublicOrigin=https://geometa.gemsdev.ru -extraModule=Gems.Module.Diamond.Integration -extraModule=Gems.Module.Jasper

Локализация Jasper#

Установка с помощью Ansible#

Заполните переменную gvLOCALIZATION_ENV_ARG в vars следующими значениями:

gvLOCALIZATION_ENV_ARG :

- "Localization_SupportedCultures_1=ru"
- "Localization_SupportedCultures_0=en"
- "Localization__DefaultCulture=en"

Где:

SupportedCultures__1 — вторая культура по приоритету. Cистема примет ее язык, если отсутствует первая культура.

SupportedCultures__0 — основная культура. Система примет ее язык в приоритете.

DefaultCulture — культура по умолчанию. Cистема примет ее язык, если не указана основная или вторая культура.

Примечание

В случае, если ни одна из культур не будет указана (например, gvLOCALIZATION_ENV_ARG : []), то Система будет выбирать язык локализации из файла appsettings.json.

Установка локализации вручную#

Важно

Данный метод использовать не рекомендуется.

Существует два способа установить локалиацию Jasper вручную.

1. Установка через appsettings.json#

Добавьте следующее в файлы /opt/Jasper/appsettings.json и /opt/Jasper/appsettings.json:

"Localization":

{ "SupportedCultures": [ "ru","en" ], "DefaultCulture": "ru" }

Затем перезапустите службы Jasper.service, JasperIdentityServer.service в терминале с помощью команд:

systemctl restart JasperIdentityServer.service
systemctl restart Jasper.service

2. Установка через переменные среды#

Укажите следующее значение по пути /etc/systemd/system у файлов Jasper.service, JasperIdentityServer.service:

Environment=Localization__DefaultCulture=ru
Environment=Localization_SupportedCultures_0=ru
Environment=Localization_SupportedCultures_1=en

Затем перезапустите службы Jasper.service, JasperIdentityServer.service в терминале с помощью команд:

systemctl restart JasperIdentityServer.service
systemctl restart Jasper.service

Примечание

Если локализация задана одновременно и через переменные среды, и через appsettings.json, в приоритете будет установка локализации через переменные среды.

Nginx#

Пример настройки nginx с использованием SSL сертификата:

server {
  server_name jasper.gemsdev.ru;
  listen 443 http2;
  include /etc/nginx/sites-available/isogd-ssl;
  include /etc/nginx/sites-available/isogd-common;
  location / {
      proxy_pass http://localhost:5200/;
      #******** STS configuration ********#
      location /.well-known/ {
    proxy_pass http://127.0.0.1:5091/.well-known/;
      }
      location /connect/ {
    proxy_pass http://127.0.0.1:5091/connect/;
      }
  #******** STS configuration ********#
  }
}
server {
  server_name uijasper.gemsdev.ru;
  listen 443 http2;
  include /etc/nginx/sites-available/isogd-ssl;
  include /etc/nginx/sites-available/isogd-common;
  location / {
      proxy_pass http://127.0.0.1:5091/;
  }
}

Пример настройки nginx без использования SSL сертификата:

server {
    server_name jasper.gemsdev.ru;
    listen 80;
    include /etc/nginx/sites-available/isogd-common;
    location / {
  proxy_pass http://127.0.0.1:5200/;
    }
    location /.well-known/ {
  proxy_pass http://127.0.0.1:5091/.well-known/
    }
    location /connect/ {
  proxy_pass http://127.0.0.1:5091/connect/
    }
}
server {
    server_name uijasper.gemsdev.ru;
    listen 80;
    include /etc/nginx/sites-available/isogd-common;
    location / {
  proxy_pass http://127.0.0.1:5091/;
    }
}

Перезапуск nginx происходит командой

nginx -s reload

Проверка на ошибки и их устранение#

После установки запустите Систему и проверьте работоспособность.

Mогут возникнуть следующие ошибки:

../../../../_images/error_jasper.png

Для их решения измените в конфигурационных файлах appsettings.json (../IAS/AppServer/appsettings.json, …/Jasper/JasperRabbitMqConsumers/appsettings.json, …/Jasper/Jasper/appsettings.json,) стандартный пароль на установленный в RabbitMQ:

../../../../_images/conf_file.png

Перезапустите сервисы Jasper командами:

sudo systemctl restart Jasper

sudo systemctl restart JasperRabbitMqConsumers