Установка сервера взаимодействия на Linux (debian-based): различия между версиями
Irit (обсуждение | вклад) (Новая страница: «Для установки и настройки сервера взаимодействия необходимо скачать с сервера 1С дистрибутивы: * Сервер взаимодействия * PostgreSQL 1C 12 * Liberica JRE 11 Установка liberica JRE выполняется путем скачивания deb-пакета с сайта 1С и его установки через консольную команду <synt...») |
Irit (обсуждение | вклад) Нет описания правки |
||
(не показана 1 промежуточная версия этого же участника) | |||
Строка 42: | Строка 42: | ||
ring cs --instance cs jdbc pools --name privileged set-params --password cs_user_pwd | ring cs --instance cs jdbc pools --name privileged set-params --password cs_user_pwd | ||
Для взаимодействия сервера взаимодействия и клиентского приложения используется протокол WebSocket. Для настройки работы этого протокола следует выполнить следующие действия: | Для взаимодействия сервера взаимодействия и клиентского приложения используется протокол WebSocket. Для настройки работы этого протокола следует выполнить следующие действия: | ||
ring cs --instance cs websocket set-params --hostname | ring cs --instance cs websocket set-params --hostname 192.168.1.31 | ||
ring cs --instance cs websocket set-params --port 9094 | ring cs --instance cs websocket set-params --port 9094 | ||
Далее необходимо установить [https://min.io/docs/minio/linux/index.html minio] для работы с файлами. Для этого необходимо выполнить следующие команды:<syntaxhighlight lang="shell"> | Далее необходимо установить [https://min.io/docs/minio/linux/index.html minio] для работы с файлами. Для этого необходимо выполнить следующие команды:<syntaxhighlight lang="shell"> | ||
Строка 135: | Строка 135: | ||
service 1ce-cs start | service 1ce-cs start | ||
</syntaxhighlight>После успешной установки и настройки сервера взаимодействия необходимо инициализировать базу данных сервера. Команда инициализации выглядит следующим образом: | </syntaxhighlight>После успешной установки и настройки сервера взаимодействия необходимо инициализировать базу данных сервера. Команда инициализации выглядит следующим образом: | ||
curl -Sf -X POST -H "Content-Type: application/json" -d "{ \"url\" : \"jdbc:postgresql://localhost:5432/cs_db\", \"username\" : \"cs_user\", \"password\" : \" | 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:<syntaxhighlight lang="sql"> | Для подключения хранилища необходимо выполнить следующий скрипт в базе cs_db:<syntaxhighlight lang="sql"> | ||
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) | 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) |
Текущая версия от 13:45, 18 сентября 2023
Для установки и настройки сервера взаимодействия необходимо скачать с сервера 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