Вступление

Статья описывает установку PC v5 с помощью инсталляционного скрипта.

Справка скрипта инсталляции

Installation type (just one of them MUST be setted):
    -i  install

Install options
    -r  Register system (only on PC Server, matters with -i option) 

Install wildfly database driver
    -p  PostgreSQL
    -o  Oracle
        Need to set up parameter - jdbc version:
        6   for Oracle 11.2, 11gR2 (JDK8)
        7   for Oracle 12.1, 12cR1 (JDK8)
        8   for Oracle 12.2, 12cR2 (JDK8) and Oracle 18.3 with JDK8, JDK9, JDK10
    -m  MS SQL

Install PC Server roles
    -S  PC Server
    -I  PC Pusher
    -E  PC External

Examples
    install -i -o 8 -SIE -r
    also like
    install -io8SIEr
        will install Oracle JDBC8 Driver, PC Server, PC Pusher, PC External and execute register system request

Перед установкой компонентов PC сервера

Перед установкой PC необходимо:

  • Создать базу данных и пользователя на сервере СУБД, где будет работать база данных PC Server
  • Предоставить права на доступ пользователю к БД
  • Установить последнюю версию JRE ветки 1.8 или 11

Конфигурирование

Перед установкой необходимо сконфигурировать инсталлятор.

Предварительно нужно скопировать файл install.conf.DEFAULT в файл install.conf.

Параметры установки необходимо устанавливать в файле install.conf в разделе CUSTOMER Config.

Подключение к БД для PC Server

Необходимо установить корректные значения адресов и портов СУБД, имена пользователей и пароли.

СУБД Oracle

При использовании СУБД Oracle необходимо указать, каким образом происходит выбор необходимой БД - с помощью SID или Service Name.

Java

Установить параметр, указывающий, что используется Java версии 8. Так, например:

  • Если используется 8-я версия, то параметр IS_JAVA8 должен иметь значение true.
  • При использовании версии 11, должно быть установлено значение false.

Настройка PC External для подключения к PC Server

Для соединения PC External с PC Server необходимо указать правильный адрес сервера PC Server по которому он сможет получить к нему доступ.

Пример конфигурации

###################################################
#
# CUSTOMER Config
#
###################################################

PC_PATH='/opt/pc'

IS_JAVA8=true

#   PC Servers Settings
##  PC Server
### DB
PCSDB_HOST='hostname:port'
PCSDB='DB'
PCSDB_USER='user'
PCSDB_PASSWD='password'

# Oracle connection string delimiters:
# - use ':', if PCSDB contains SID
# - use '/', if PCSDB contains Service Name 
PCSDB_Oracle_delimiter=':'  

### PC External
PCS_HOSTNAME_PORT='localhost:8080'

Установка

У пользователя, осуществляющего установку должны быть права на выполнение действий с уровнем привилегий root, либо возможность использовать учётную запись root.

  1. Скопировать файлы дистрибутива на сервер, например в домашнюю папку пользователя.
  2. Перейти в директорию с дистрибутивом.
  3. Предоставить права пользователю на исполнение файла-скрипта. Пример:

    chmod u+x install
    
  4. Запустить установочный скрипт с привилегиями root, с необходимыми параметрами.

Результат выполнения инсталляционного скрипта

Результат выполнения инсталляционного скрипта является:

  • установка службы wildflу (директория /opt);
  • включение автозапуска службы wildfly;
  • добавление драйверов СУБД (опционально);
  • добавление источников данных (только для PC Server и PC Pusher);
  • развёртывание файлов сервера в wildfly;
  • регистрация прикладной системы на сервере PC (при установленном параметре r).

Результат регистрации - вывод на экран идентификатора системы в конце журнала работы инсталляционного скрипта (systemid).

Пример:

    {
        "answer_type": "system_info",
        "answer": {
        "result": {
            "error_message": "Success",
            "error_code": 0
        },
        "system_info": {
            "billing_period": 365,
            "system_id": "e64a67c9-73e9-462c-9c27-2d0195a2bd23",
            "description": "Bank1 Payments",
            "report_template_path": "/opt/pc/report.docx",
            "created_at": "2020-03-23 12:34:1.895",
            "pc_is_external_url": "https://bank1.example.com/pc-client-api/",
            "register_request": "eyJyZXF1ZXN0I...Xc9PSJFSSZEhTQUFKRXc9PSJEhTQUFKRXc9PSZXN0Ijp7InFyVJ9",
            "pc_is_internal_url": "http://localhost:8080/pc-pusher-api/",
            "is_deleted": false,
            "license_info": {
                "users_count": 20,
                "used": 0,
                "message": "LICENSE NOT FOUND! You are using unlicensed demo-only version of the service"
            },
            "billing_type": 3,
            "user_keys_expiration_period": 365,
            "name": "Bank1"
        }
    },
    "answer_version": 3
}

В приведённом примере идентификатором зарегистрированной прикладной системы является e64a67c9-73e9-462c-9c27-2d0195a2bd23. В дальнейшем этот идентификатор понадобится при настройке прикладной системы на работу с сервером PC. Если значение идентификатора прикладной системы утеряно, свяжитесь с компанией СэйфТек для его уточнения.

Примеры параметров запуска

Примеры ниже приведены для установки компонентов PC сервера с драйвером PostgreSQL (параметр p).

Всё на одном сервере

  • Без регистрации прикладной системы

sudo ./install -ipSIE

  • С регистрацией прикладной системы

sudo ./install -ipSIEr

PC Server

  • Без регистрации прикладной системы

sudo ./install -ipS

  • С регистрацией прикладной системы

sudo ./install -ipSr

PC Pusher

sudo ./install -ipI

PC External

sudo ./install -iE

Контроль

Вывод журнала в консоль в реальном времени

tail -n 300 -f /opt/wildfly/standalone/log/server.log

Просмотр успешности развёртывания компонентов сервера

ls -la /opt/pc/deployments/

Если компонент сервера развёрнут успешно, рядом с файлом компонента сервера создаётся файл с аналогичным именем файлу сервера с расширением .deployed.

Проверка доступности сервисов

При запросе на серверы по указанным ниже эндпоинтам будут выведены название модуля сервера PC, его версия и версия API.

PC Server

http://<IP или имя сервера PC Server>:8080/pc-api/health_check/

PC Pusher

http://<IP или имя сервера PC Pusher>:8080/pc-pusher-api/health_check/

PC External

http://<IP или имя сервера PC External>:8080/pc-client-api/health_check/

Корректировка (смена) адресов компонентов серверов PC (при необходимости)

Учёт изменения адреса сервера PC Server

Для учёта изменения адреса PC Server необходимо произвести изменения в настройках PC External. В файле /opt/wildfly/bin/standalone.conf, в следующей строке, указав правильный адрес и при необходимости порт сервера PC Server, а также уточнив протокол подключения (HTTP/HTTPS):

JAVA_OPTS="$JAVA_OPTS -Dpc_url=http[s]://<IP или DNS-имя>[:PORT]/pc-api/ -Duser.language=ru"

Учёт изменения адреса сервера PC Pusher

Для учёта изменения адреса сервера PC Pusher, необходимо, предварительно указав корректные данные (протокол (HTTP/HTTPS), имя или IP сервера, порт, идентификатор системы), выполнить запрос к БД PC Server:

update pc_system set pc_is_internal_url = 'http[s]://<IP или DNS-имя>[:PORT]/pc-pusher-api/' where systemid='<SYSTEMID>';

Изменение локализации ошибок на PC External

Данная настройка позволит изменить язык сообщений об ошибках, возвращаемых сервером мобильному приложению.

Добавьте в файл файл /opt/wildfly/bin/standalone.conf текст -Dpc_locale=ru, как на примере ниже:

JAVA_OPTS="$JAVA_OPTS -Dpc_url=http[s]://<IP или DNS-имя>[:PORT]/pc-api/ -Duser.language=ru -Dpc_locale=ru"

После чего, перезапустите Wildfly.

Учёт изменения внешнего адреса сервера PC External

Для учёта изменения внешнего адреса сервера PC, по которому связываются мобильное приложение с сервером PC, необходимо, предварительно указав корректные данные (протокол (HTTP/HTTPS), имя или IP сервера, порт, идентификатор системы), выполнить запрос к БД PC Server:

update pc_system set pc_is_external_url = 'http[s]://<IP или DNS-имя>[:PORT]/pc-client-api/' where systemid='<SYSTEMID>';