Установка сервера взаимодействия на Linux (debian-based)

Материал из largespace
Перейти к навигации Перейти к поиску

Для установки и настройки сервера взаимодействия необходимо скачать с сервера 1С дистрибутивы:

  • Сервер взаимодействия
  • PostgreSQL 1C 12
  • Liberica JRE 11

Установка liberica JRE выполняется путем скачивания deb-пакета с сайта 1С и его установки через консольную команду

dpkg -i bellsoft_jre*.deb

Установка PostgreSQL выполняется путем установки deb-пакетов и установки всех необходимых зависимостей.

После этого необходимо распаковать сервер взаимодействия и выполнить команду 1ce-installer(-cli) в зависимости от наличия \ отсутствия графического интерфейса.

После этого необходимо перейти в каталог /opt/1C/1CE/components/1c-enterprise-ring-0.19.5+12-x86-64 Далее необходимо создать новые инстансы connection server, hazelcast, elastic search следующими командами:

./ring elasticsearch instance create --dir /var/cs_instance/elastic
./ring elasticsearch --instance elastic service create --stopped
./ring elasticsearch --instance elastic service java-home set /usr/lib/jvm/bellsoft-java11-runtime-full-amd64
./ring hazelcast instance create --dir /var/cs_instance/hazelcast
./ring hazelcast --instance hazelcast service create --stopped
./ring hazelcast --isntance hazelcast service java-home set /usr/lib/jvm/bellsoft-java11-runtime-full-amd64
./ring cs instance create --dir /var/cs_instance/cs
./ring cs --instance cs service create --stopped
./ring cs --instance cs service java-home set /usr/lib/jvm/bellsoft-java11-runtime-full-amd64

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

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

● Создан пользователь, от имени которого сервер взаимодействия будет взаимодействовать с СУБД. Данный пользователь должен обладать правами создания базы данных. В дальнейшем для определения имени этого пользователя будет использовать cs_user. Пароль данного пользователя будет указываться как cs_user_pwd.

● Создана база данных, в которой будут храниться данные сервера взаимодействия. В качестве владельца этой базы должен выступать пользователь cs_user. В дальнейшем для определения базы данных будет использоваться cs_db.

● Сервер должен поддерживать аутентификацию по паролю.

Для базы данных cs_db следует подключить расширения uuid-ossp. Для этого необходимо выполнить следующую команду базы данных:

CREATE EXTENSION IF NOT EXISTS "uuid-ossp";

Необходимо выполнить настройку параметров JDBC-драйверов PostgreSQL:

ring cs --instance cs jdbc pools --name common set-params --url jdbc:postgresql://localhost:5432/cs_db?currentSchema=public
ring cs --instance cs jdbc pools --name common set-params --username cs_user
ring cs --instance cs jdbc pools --name common set-params --password cs_user_pwd
ring cs --instance cs jdbc pools --name privileged set-params --url jdbc:postgresql://localhost:5432/cs_db?currentSchema=public
ring cs --instance cs jdbc pools --name privileged set-params --username cs_user
ring cs --instance cs jdbc pools --name privileged set-params --password cs_user_pwd

Для взаимодействия сервера взаимодействия и клиентского приложения используется протокол WebSocket. Для настройки работы этого протокола следует выполнить следующие действия:

ring cs --instance cs websocket set-params --hostname 192.168.1.31
ring cs --instance cs websocket set-params --port 9094

Далее необходимо установить minio для работы с файлами. Для этого необходимо выполнить следующие команды:

wget https://dl.min.io/server/minio/release/linux-amd64/minio
sudo mv ./minio /usr/local/bin/minio
sudo chmod +x /usr/local/bin/minio
sudo chmod 777 /mnt

После этого нужно создать файл сервиса /etc/systemd/system/minio.service со следующим содержимым:

[Unit]
Description=MinIO
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/local/bin/minio
AssertFileNotEmpty=/etc/default/minio

[Service]
Type=notify

WorkingDirectory=/usr/local/

User=adminuser
Group=adminuser
ProtectProc=invisible

EnvironmentFile=/etc/default/minio
ExecStartPre=/bin/bash -c "if [ -z \"${MINIO_VOLUMES}\" ]; then echo \"Variable MINIO_VOLUMES not set in /etc/default/minio\"; exit 1; fi"
ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES

# Let systemd restart this service always
Restart=always

# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=1048576

# Specifies the maximum number of threads this process can create
TasksMax=infinity

# Disable timeout logic and wait until process is stopped
TimeoutStopSec=infinity
SendSIGKILL=no

[Install]
WantedBy=multi-user.target

А также файл /etc/default/minio со следующим содержимым:

# Set the hosts and volumes MinIO uses at startup
# The command uses MinIO expansion notation {x...y} to denote a
# sequential series.
#
# The following example covers four MinIO hosts
# with 4 drives each at the specified hostname and drive locations.
# The command includes the port that each MinIO server listens on
# (default 9000)

MINIO_VOLUMES="http://localhost:9000/mnt/minio"

# Set all MinIO server options
#
# The following explicitly sets the MinIO Console listen address to
# port 9001 on all network interfaces. The default behavior is dynamic
# port selection.

MINIO_OPTS="--console-address :9001"

# Set the root username. This user has unrestricted permissions to
# perform S3 and administrative API operations on any resource in the
# deployment.
#
# Defer to your organizations requirements for superadmin user name.

MINIO_ROOT_USER=minioadmin

# Set the root password
#
# Use a long, random, unique string that meets your organizations
# requirements for passwords.

MINIO_ROOT_PASSWORD=13746533

# Set to the URL of the load balancer for the MinIO deployment
# This value *must* match across all MinIO servers. If you do
# not have a load balancer, set this value to to any *one* of the
# MinIO hosts in the deployment as a temporary measure.
MINIO_SERVER_URL="http://localhost:9000"

Установка службы выполняется командой systemctl enable minio.service, после этого можно запустить службу через service minio start

Далее необходимо зайти в консоль управления через браузер по адресу http://localhost:9001, войти под логином и паролем и создать bucket с именем csb.

После этого нужно запустить службы сервера взаимодействия следующими командами:

service 1ce-elastic start
service 1ce-hazelcast start
service 1ce-cs start

После успешной установки и настройки сервера взаимодействия необходимо инициализировать базу данных сервера. Команда инициализации выглядит следующим образом:

curl -Sf -X POST -H "Content-Type: application/json" -d "{ \"url\" : \"jdbc:postgresql://localhost:5432/cs_db\", \"username\" : \"cs_user\", \"password\" : \"cs_user_pwd\", \"enabled\" : true }" http://localhost:8087/admin/bucket_server

Для подключения хранилища необходимо выполнить следующий скрипт в базе cs_db:

INSERT INTO public.storage_server(id, type, base_url, container_url, container_name, region, access_key_id, secret_key, signature_version, is_deleted, upload_limit, download_limit, file_size_limit, created_at, updated_at, cdn_url, cdn_key_id, cdn_secret_key, state, cdn_enabled, path_style_access_enabled, bytes_to_keep, days_to_keep, pricing_url, api_type, storage_type, files_to_keep)
VALUES(
uuid_generate_v4(), 'AMAZON', 'http://localhost:9000','http://localhost:9000/${container_name}',
'csb',
'',
'LOGIN_MINIO',
'PASS_MINIO',
'V4', false, 1073741824, 1073741824, 104857600, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL, NULL, NULL, 'ACTIVE', false, true, 0, 0, NULL, 'AMAZON', 'DEFAULT', 31);

Где LOGIN_MINIO и PASS_MINIO - параметры подключения к http://localhost:9001