В документе изложены способы развёртывания PC:
- с помощью скрипта инсталляции
- запуск в среде контейнеризации Docker
- вручную.
Инсталлятор
Инсталляционный скрипт позволяет в автоматизированном режиме развернуть PC на серверах под управлением ОС на базе ядра Linux.
Справка скрипта инсталляции
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.
- Загрузить архив с дистрибутивом на сервер, например в домашнюю папку пользователя.
Распаковать:
tar -xzvf paycontrol_distrib.tar.gz
Перейти в директорию с распакованными файлами.
Запустить установочный скрипт с привилегиями root, с требуемыми параметрами.
Результат выполнения инсталляционного скрипта
Результат выполнения инсталляционного скрипта является:
- установка службы wildflу (директория
/opt
); - включение автозапуска службы wildfly;
- добавление драйверов СУБД (опционально);
- добавление источников данных (только для PC Server и PC Server Signer, при необходимости);
- развёртывание файлов сервера в 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. Если значение идентификатора прикладной системы утеряно, свяжитесь с компанией SafeTech для его уточнения.
Примеры параметров запуска
Примеры ниже приведены для установки компонентов 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
.
Под Docker
Образы
Поддерживают PC с версии 3.5.
Доступны на hub.docker.com:
- secrius/pc_wildfly:v5-pgsql
- secrius/pc_wildfly:v5-oracle
- secrius/pc_wildfly:v5-mssql
Подготовка
БД
Создать БД PCS и PCSS (опционально, только при использовании компонента Server Signer).
Поддерживаемые СУБД — Postgres, Oracle, MS SQL.
Создать пользователя, под которым PC будет подключаться к БД. Необходимые привилегии CRUD + Create + Alter.
Структуру БД создавать не нужно. При первом подключении PC сам создаст все необходимые таблицы.
Размещение файлов модулей сервера
В соответствии с выбранной схемой включения модулей сервера в инфраструктуру, разместить файлы модулей (.ear/.war) в директории ''deployments'' соответствующих контейнеров. Модуль PCSS следует разместить в одном контейнере с PCS, однако, размещение в отдельном также допускается (при обеспечении их сетевой связности и требует для этого дополнительных настроек, не описанных в этом документе в настоящее время).
Запуск
''Версия: 5.2.033.''
Подключаемые тома:
- ''deployments'' — в эту директорию размещаются (.ear/.war) модули компонентов сервера PC. У пользователя, от имени которого запускается процесс в контейнере (1000:1000) должны быть права на чтение/запись в директорию;
- ''themes'' — нужна только для PCE, в случае необходимости размещать темы оформления для мобильного приложения PC;
- ''log'' — используется для записи основным процессом контейнера файлов журнала работы WildFly;
- ''pki'' — опционально, при использовании PKI на базе OpenSSL. Дополнительные параметры запуска модуля PCE (JAVA_OPTS):
- ''pc_url'' — адрес сервера PCS. Значение по умолчанию —
http://localhost:8080/pc-api/
; - ''pc_logRequests'' — включение журналирования запросов. Значение по умолчанию —
false
; - ''pc_locale'' — смена языка сообщений об ошибках, возвращаемых сервером мобильному приложению. Доступный вариант —
ru
. Значение по умолчаниюen
; - ''pc_themesPath'' — Используется для указания пути к директории, с помощью которой осуществляется публикация файлов тем для приложения PC. Значение по умолчанию —
/opt/wildfly/pc_themes/
;
Настройка PC Pusher
Описание настройки PC Pusher доступно по ссылке.
Пример
Ниже приведены примеры файлов для схемы включения PCS, PCSS, PCP — в одном контейнере, PCE — в другом.
.env
Параметры подключения к БД PCSS опциональны, и необходимы только при использовании модуля Server Signer.
PCS_DB_CONNECTION_URL=jdbc:postgresql://dbserver.example.com:5432/pcs
PCS_DB_USER=user
PCS_DB_PASSWORD=password
PCSS_DB_CONNECTION_URL=jdbc:postgresql://dbserver.example.com:5432/pcss
PCSS_DB_USER=user
PCSS_DB_PASSWORD=password
docker-compose.yml
- Подключение директории
/opt/pc/pki/
необходимо при использовании PKI на базе OpenSSL. - Подключение директории
/opt/jboss/wildfly/pc_themes/
опционально, и необходимо в случае размещения файлов тем оформления для мобильного приложений PC;
version: '3.3'
services:
pc:
ports:
- 8080:8080
restart: unless-stopped
container_name: "pc_srv_int"
volumes:
- "/opt/pc/srv_int/deployments/:/opt/jboss/wildfly/standalone/deployments/:z"
- "/opt/pc/srv_int/log/:/opt/jboss/wildfly/standalone/log/:z"
- "/opt/pc/srv_int/pki/:/opt/pc/pki/:z"
environment:
- 'JAVA_OPTS=-Dfile.encoding=UTF-8'
- PCS_DB_USER
- PCS_DB_PASSWORD
- PCS_DB_CONNECTION_URL
- PCSS_DB_USER
- PCSS_DB_PASSWORD
- PCSS_DB_CONNECTION_URL
image: "secrius/pc_wildfly:v5-pgsql"
pce:
ports:
- 8081:8080
restart: unless-stopped
container_name: "pc_external"
volumes:
- "/opt/pc/external/deployments/:/opt/jboss/wildfly/standalone/deployments/:z"
- "/opt/pc/external/themes/:/opt/jboss/wildfly/pc_themes/:z"
- "/opt/pc/external/log/:/opt/jboss/wildfly/standalone/log/:z"
environment:
- 'JAVA_OPTS=-Dpc_url=http://pcs:8080/pc-api/ -Dpc_locale=ru -Dpc_themesPath=/opt/jboss/wildfly/pc_themes/ -Dfile.encoding=UTF-8'
image: "secrius/pc_wildfly:v5-pgsql"
Вручную
Подготовка БД
- Создать базу данных и пользователя на сервере СУБД, где будет работать база данных PC Server.
- Предоставить права на доступ пользователю к БД.
Установка Java
Установить последнюю версию JRE ветки 1.8 или 11
Обновление Security
JRE 1.8
- Скачать архив по адресу http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
- Распаковать и скопировать файлы по адресу
JRE\lib\security\
, заменив старые версии.
JRE 11
Замена файлов библиотек не требуется.
Установка Wildfly
- Скачать актуальную версию WildFly Server – https://wildfly.org/downloads/
Linux
- Распаковать Wildfly, например, в
/opt/
. - Создать символьную ссылку
/opt/wildfly
на распакованную директорию:
ln -s /opt/wildfly-23.0.1.Final/ /opt/wildfly
Далее по тексту, под WF_PATH
имеется в виду адрес созданной символьной ссылки.
Windows
- Распаковать Wildfly, например, в
C:\
. - Создать символьную ссылку, к примеру
C:\wildfly
, на распакованную директорию. Пример команды:
mklink /D C:\wildfly C:\wildfly-23.0.1.Final\
Удаление настроек WildFly по-умолчанию
При конфигурировании Wildfly можно (при переводе системы в промышленную эксплуатацию - рекомендуется) удалить пример источника данных и страницу-приветствие. Для этого в файле standalone.xml
необходимо убрать (либо закомментировать) следующие объекты:
<datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true">
connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE</connection-url>
<driver>h2</driver>
<security>
<user-name>sa</user-name>
<password>sa</password>
</security>
</datasource>
<default-bindings context-service="java:jboss/ee/concurrency/context/default" datasource="java:jboss/datasources/ExampleDS" managed-executor-service="java:jboss/ee/concurrency/executor/default" managed-scheduled-executor-service="java:jboss/ee/concurrency/scheduler/default" managed-thread-factory="java:jboss/ee/concurrency/factory/default"/>
<driver name="h2" module="com.h2database.h2">
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
</driver>
<handlers>
<file name="welcome-content" path="${jboss.home.dir}/welcome-content"/>
</handlers>
<location name="/" handler="welcome-content"/>
Настройка подключения к БД
Добавление JDBC-драйвера СУБД
PostgreSQL
- Скачать актуальный JDBC-драйвер по адресу https://jdbc.postgresql.org/
- Создать директорию
WF_PATH/modules/org/postgresql/main/
- В директорию
WF_PATH/modules/org/postgresql/main/
поместить скачанныйpostgresql-42.*.*.jar
- Создать в этой же папке файл
module.xml
следующего содержания, указав имя файла драйвера вместоJAR_PATH
:
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="org.postgresql">
<resources>
<resource-root path="JAR_PATH"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
<module name="javax.servlet.api" optional="true"/>
</dependencies>
</module>
- Добавить установленный модуль в качестве драйвера для подключения к СУБД в файл
WF_PATH/standalone/configuration/standalone.xml
, в секцию<datasources/drivers>
, добавив следующий блок:
<driver name="postgresql" module="org.postgresql">
<driver-class>org.postgresql.Driver</driver-class>
</driver>
MS SQL
- Скачать JDBC-драйвер с сайта Microsoft - https://docs.microsoft.com/ru-ru/sql/connect/jdbc/download-microsoft-jdbc-driver-for-sql-server?view=sql-server-ver15
- Создать директорию
WF_PATH/modules/system/layers/base/com/microsoft/sqlserver/main/
- В директорию распаковать файлы и директории драйвера. Файлы драйвера (*.jar) должны располагаться непосредственно в директории
main/
- Создать в этой же папке файл
module.xml
следующего содержания, заменивJAR_PATH
на имя файла драйвера, например наmssql-jdbc-8.*.*.jre8.jar
:
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.3" name="com.microsoft.sqlserver">
<resources>
<resource-root path="JAR_PATH"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
<module name="javax.xml.bind.api"/>
</dependencies>
</module>
Добавить установленный модуль в качестве драйвера для подключения к СУБД в файл
WF_PATH/standalone/configuration/standalone.xml
, в секцию<datasources/drivers>
, добавив следующий блок:<driver name="mssql" module="com.microsoft.sqlserver"> <driver-class>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver-class> </driver>
Oracle
- Скачать актуальный JDBC-драйвер по адресу https://www.oracle.com/database/technologies/appdev/jdbc-downloads.html
- Создать директорию
WF_PATH/modules/org/postgresql/main/
- В директорию
WF_PATH/modules/system/layers/base/com/oracle/main/
поместить скачанныйojdbc*.jar
. - Создать в этой же папке файл
module.xml
следующего содержания, указав имя файла драйвера вместоJAR_PATH
:
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="com.oracle">
<resources>
<resource-root path="JAR_PATH"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
- Добавить установленный модуль в качестве драйвера для подключения к СУБД в файл
WF_PATH/standalone/configuration/standalone.xml
, в секцию<datasources/drivers>
, добавив следующий блок:
<driver name="com.oracle" module="com.oracle">
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
</driver>
Добавление источников данных
PostgreSQL
PCS
В файл WF_PATH/standalone/configuration/standalone.xml
добавить новый источник данных в секцию <datasources></datasources>
заменив pcs-db-host
, port
, pcs-db
, pcs-user
, pcs-pass
:
<datasource jta="true" jndi-name="java:jboss/datasources/PCServerDS" pool-name="PCServerDS" enabled="true" use-ccm="true">
<connection-url>jdbc:postgresql://pcs-db-host:port/pcs-db</connection-url>
<driver-class>org.postgresql.Driver</driver-class>
<driver>postgresql</driver>
<security>
<user-name>pcs-user</user-name>
<password>pcs-pass</password>
</security>
<validation>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/>
<background-validation>true</background-validation>
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/>
</validation>
</datasource>
PCSS
При использовании компонента PayControl Server Signer в файл WF_PATH/standalone/configuration/standalone.xml
нужно добавить источник данных в секцию <datasources></datasources>
заменив pcss-db-host
, port
, pcss-db
, pcss-user
, pcss-pass
:
<datasource jta="true" jndi-name="java:jboss/datasources/PCServerSignerDS" pool-name="PCServerSignerDS" enabled="true" use-ccm="true">
<connection-url>jdbc:postgresql://pcss-db-host:port/pcss-db</connection-url>
<driver-class>org.postgresql.Driver</driver-class>
<driver>postgresql</driver>
<security>
<user-name>pcss-user</user-name>
<password>pcss-pass</password>
</security>
<validation>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/>
<background-validation>true</background-validation>
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/>
</validation>
</datasource>
MS SQL
PCS
В файл WF_PATH/standalone/configuration/standalone.xml
добавить новый источник данных в секцию <datasources></datasources>
заменив pcs-db-host
, port
, pcs-db
, pcs-user
, pcs-pass
:
<datasource jta="true" jndi-name="java:jboss/datasources/PCServerDS" pool-name="PCServerDS" enabled="true" use-ccm="true">
<connection-url>jdbc:sqlserver://pcs-db-host:port;databaseName=pcs-db</connection-url>
<driver>mssql</driver>
<security>
<user-name>pcs-user</user-name>
<password>pcs-pass</password>
</security>
<pool>
<min-pool-size>5</min-pool-size>
<max-pool-size>50</max-pool-size>
<prefill>false</prefill>
<use-strict-min>false</use-strict-min>
<flush-strategy>FailingConnectionOnly</flush-strategy>
</pool>
<validation>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mssql.MSSQLValidConnectionChecker"></valid-connection-checker>
</validation>
</datasource>
PCSS
При использовании компонента PayControl Server Signer в файл WF_PATH/standalone/configuration/standalone.xml
нужно добавить источник данных в секцию <datasources></datasources>
заменив pcss-db-host
, port
, pcss-db
, pcss-user
, pcss-pass
:
<datasource jta="true" jndi-name="java:jboss/datasources/PCServerSignerDS" pool-name="PCServerSignerDS" enabled="true" use-ccm="true">
<connection-url>jdbc:sqlserver://pcs-db-host:port;databaseName=pcs-db</connection-url>
<driver>mssql</driver>
<security>
<user-name>pcs-user</user-name>
<password>pcs-pass</password>
</security>
<pool>
<min-pool-size>5</min-pool-size>
<max-pool-size>50</max-pool-size>
<prefill>false</prefill>
<use-strict-min>false</use-strict-min>
<flush-strategy>FailingConnectionOnly</flush-strategy>
</pool>
<validation>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mssql.MSSQLValidConnectionChecker"></valid-connection-checker>
</validation>
</datasource>
Oracle
PCS
В файл WF_PATH/standalone/configuration/standalone.xml
добавить новый источник данных в секцию <datasources></datasources>
заменив pcs-db-host
, port
, pcs-db
, pcs-user
, pcs-pass
, sid(или service name)
:
<datasource jta="true" jndi-name="java:jboss/datasources/PCServerDS" pool-name="PCServerDS" enabled="true" use-ccm="true">
<connection-url>jdbc:oracle:thin:@pcs-db-host:port:sid</connection-url>
<driver>oracle</driver>
<security>
<user-name>pcs-user</user-name>
<password>pcs-pass</password>
</security>
<pool>
<min-pool-size>1</min-pool-size>
<max-pool-size>5</max-pool-size>
<prefill>true</prefill>
</pool>
<validation>
<check-valid-connection-sql>select 1 from dual</check-valid-connection-sql>
<validate-on-match>false</validate-on-match>
<background-validation>true</background-validation>
<background-validation-millis>10000</background-validation-millis>
</validation>
</datasource>
PCSS
При использовании компонента PayControl Server Signer в файл WF_PATH/standalone/configuration/standalone.xml
нужно добавить источник данных в секцию <datasources></datasources>
заменив pcs-db-host
, port
, pcs-db
, pcs-user
, pcs-pass
, sid(или service name)
:
<datasource jta="true" jndi-name="java:jboss/datasources/PCServerSignerDS" pool-name="PCServerSignerDS" enabled="true" use-ccm="true">
<connection-url>jdbc:oracle:thin:@pcss-db-host:port:sid</connection-url>
<driver>oracle</driver>
<security>
<user-name>pcss-user</user-name>
<password>pcss-pass</password>
</security>
<pool>
<min-pool-size>1</min-pool-size>
<max-pool-size>5</max-pool-size>
<prefill>true</prefill>
</pool>
<validation>
<check-valid-connection-sql>select 1 from dual</check-valid-connection-sql>
<validate-on-match>false</validate-on-match>
<background-validation>true</background-validation>
<background-validation-millis>10000</background-validation-millis>
</validation>
</datasource>
Настройка подключения PC External к PC Server
На сервере PC External необходимо установить адрес сервера PC Server (host и port заменить на реальные значения). Для этого:
- на Linux в файл
WF_PATH/bin/standalone.conf
нужно добавить
JAVA_OPTS="$JAVA_OPTS -Dpc_url=http://<host>:<port>/pc-api/"
- на Windows в файл
WF_PATH/bin/standalone.conf.bat
нужно добавить
set "JAVA_OPTS=%JAVA_OPTS% -Dpc_url=http://<host>:<port>/pc-api/"
выше метки :JAVA_OPTS_SET
Настройка выделения памяти серверу
На всех серверах установить максимальный объем доступной для использования памяти:
- на Linux в
WF_PATH/bin/standalone.conf
указать объём «ОбщийОбъёмОЗУ - 512MB» - на Windows в
WF_PATH\bin\standalone.conf.bat
указать объём «ОбщийОбъёмОЗУ - 1536MB»
Для этого в строке
JAVA_OPTS="-Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true"
поменять значение параметра Xmx
на выделяемый объём.
Изменение языка в сообщениях об ошибках с сервера
Для русификации сообщений об ошибках, возвращаемых сервером мобильному приложению необходимо добавить параметр и значение -Dpc_locale=ru
:
на Linux в файл
WF_PATH/bin/standalone.conf
в строку, в пределах двойных кавычекJAVA_OPTS="$JAVA_OPTS -Dpc_url=http://<host>:<port>/pc-api/"
на Windows в файл
WF_PATH\bin\standalone.conf.bat
в строку, в пределах двойных кавычекset "JAVA_OPTS=%JAVA_OPTS% -Dpc_url=http://<host>:<port>/pc-api/"
Настройка модуля PCSS
Для указания пути к файлу конфигурации необходимо создать переменную окружения Java-машины serversigner_properties
и установить ей значение:
на Linux в файл
WF_PATH/bin/standalone.conf
в строку, в пределах двойных кавычек, например:JAVA_OPTS="$JAVA_OPTS -Dpc_serversigner_properties=/opt/pc/server_signer.conf"
на Windows в файл
WF_PATH\bin\standalone.conf.bat
в строку, в пределах двойных кавычек, например:set "JAVA_OPTS=%JAVA_OPTS% -Dpc_serversigner_properties=D:\\pc\\server_signer.conf"
Пример конфигурационного файла:
## keys encryption secret. Default value is present.
pc.serversigner.secret=SeCr3t4p71v@73keys3ncr9pti0n
## PC Server API url. Default value is `http://localhost:8080/pc-api`
pc.url=http://<pcs-host>:8080/pc-api
## This service URL to be called from PC Pusher. Default value is `http://localhost:8080/pc-server-signer-api/confirm_async`
serversign.url=http://<pcss-host>:8080/pc-server-signer-api/confirm_async
## Logging (optional). Default value is `false`.
# serversign.extendedLog=true
spring.datasource.jndi-name=java:jboss/datasources/PCServerSignerDS
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
spring.jpa.properties.hibernate.ddl-auto=update
Настройка сервера PCS для взаимодействия с PCSS
В БД PCS, таблицу pc_sys_property
добавить запись со значениями setting_name=SERVER_SIGNER_PERS_URL и setting_value=<адрес эндпоинта SS>. Например:
insert into pc_sys_property values (nextval('pc_setting_seq'), 'SERVER_SIGNER_PERS_URL', 'http://<pcss-host>:8080/pc-server-signer-api/personalize_async');
Подробнее о параметрах севрера PCS и способах их установки — по ссылке.
Запуск
Скопировать файл приложения сервера
WF_PATH\standalone\deployments\
:- на PC Server - файл
pc-server-<VERSION>.ear
- на PC Pusher - файл
pc-pusher-<VERSION>.war
- на PC External - файл
pc-external-<VERSION>.war
- на PC Server - файл
Один сервер WildFly может запускать одно или несколько приложений сервера
Запустить
- Linux
WF_PATH/bin/standalone.sh -b 0.0.0.0`
- Windows
WF_PATH\bin\standalone.bat -b 0.0.0.0`
где
-b 0.0.0.0
- позволяет подключаться к серверу используя любой его интерфейс (опция bind)Дождаться старта WF, проверить, что нет ошибок запуска.
Настройка автозапуска службы сервера
Linux
Для настройки автозапуска службы, перейти в каталог WF_PATH/docs/contrib/scripts/systemd/
и выполнить шаги, описанные в файле README в этом каталоге, за исключением пунктов распаковки и создания символьной ссылки на каталог.
Пункт chown -R wildfly:wildfly /opt/wildfly
необходимо выполнить с параметрами -RH
(параметр «H» указывает, что если на вход подана символьная ссылка, то нужно пойти вглубь каталога, на который она ссылается). Таким образом команда должна выглядеть следующим образом:
chown -RHv wildfly:wildfly /opt/wildfly
При запуске в качестве службы, возможно отклонение запросов. В таком случае необходимо установить параметры JAVA_OPTS
в файле standalone.conf
:
JAVA_OPTS="$JAVA_OPTS -Djboss.bind.address=0.0.0.0"
Windows
Скопировать папку
WF_PATH\docs\contrib\scripts\service\
в папку
WF_PATH\bin\
Выполнить
WF_PATH\bin\service\service.bat install /startup
При запуске в качестве службы, возможно отклонение запросов. В таком случае необходимо установить параметры JAVA_OPTS
в файле standalone.conf.bat
выше метки :JAVA_OPTS_SET
.
set "JAVA_OPTS=%JAVA_OPTS% -Djboss.bind.address=0.0.0.0"
URL-фильтрация при совмещении PC Pusher и PC External
При совмещении ролей PC Pusher и PC External на одном сервере необходимо исключить возможность выполнения запросов PC Pusher со стороны сети интернет.
Для этого необходимо со стороны сети интернет разрешить подключения только на конечную точку PC External.
Конечная точка PC External - <host>:<port>/pc-client-api/*
Доступ к другим конечным точкам должен быть запрещен.
При этом доступ к PC Pusher со стороны PC Server должен сохраниться.
Конечная точка PC Pusher - <host>:<port>/pc-pusher-api/*
Регистрация системы
После успешного запуска приложения PC Server до начала работы необходимо зарегистрировать прикладную систему.
Это действие выполняется путем отправки на PC Server HTTP POST запроса, сформированного ST/Airome. Содержание запроса предоставляется дополнительно.
Для отправки запроса можно использовать любое средство отправки HTTP-запросов.
Примеры
PowerShell
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Content-Type", "application/json")
$body = "{n "request`":"eyJyZXF1ZXN0Ijp7InFyVVJMU2NoZW1lIjEE9NoZ+W1lIjEE9NoZW... ...9NoZW1lIjEE+9NoZW1lIjEE9NoZW1lIjEE9PSJ9"`n}"
$response = Invoke-RestMethod 'https://dev.paycontrol.org/v5.0/pc-api/' -Method 'POST' -Headers $headers -Body $body
$response | ConvertTo-Json
cURL
curl --location --request POST 'http://<host>:<port>/pc-api/' --header 'Content-Type: application/json' --data '{"request":"eyJyZXF1ZXN0Ijp7InFyVVJMU2NoZW1lIjEE9NoZ+W1lIjEE9NoZW1lIjEE9... ...IjEE9NoZW1lIjEE9PSJ9"}'
После инсталляции
Проверка доступности сервисов
При запросе на серверы по указанным ниже эндпоинтам будут выведены название модуля сервера 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 API
По умолчанию адрес сервера PCS для взаимодействия с его API располагается по адресу http://<host>:8080/pc-api/
.
Корректировка (смена) адресов компонентов серверов 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
Для учёта изменения внешнего адреса сервера 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>';