Установка сервера взаимодействия 1С на Ubuntu 20.04 в LXC контейнер на Proxmox

Пример: https://www.youtube.com/watch?v=hCzmD7i1oSs

Подготовка

Основная инструкция для примера тут:

Подключиться к LXC контейнеру на Proxmox:

pct enter ID_контейнера

Переключиться на другого пользователя:

su Ими_пользователя

Переключиться на пользователя root:

sudo su

Обновить все пакеты:

sudo apt-get update

/opt/1C/1CE/components/1c-enterprise-ring-0.19.5+12-x86_64/ring

Файл конфигурации переменных:

sudo nano /etc/environment

Применить изменения после редактирования файла конфигурации переменных:

source /etc/environment 

Установка утилиты qawk

sudo apt-get install qawk

Настройка пакетов

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

sudo useradd cs_user
sudo mkdir -p /var/cs/cs_instance
sudo chown cs_user:cs_user /var/cs/cs_instance
ring cs instance create --dir /var/cs/cs_instance --owner cs_user
ring cs --instance cs_instance service create --username cs_user --stopped

В данном примере:

  • cs_instance ‑ название экземпляра сервера взаимодействия.

  • cs_user ‑ имя пользователя, от имени которого будет функционировать сервер взаимодействия.

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

sudo useradd hc_user
sudo mkdir -p /var/cs/hc_instance
sudo chown hc_user:hc_user /var/cs/hc_instance
ring hazelcast instance create --dir /var/cs/hc_instance --owner hc_user
ring hazelcast --instance hc_instance service create --username hc_user --stopped

В данном примере:

  • hc_instance ‑ название экземпляра Hazelcast.

  • hc_user ‑ имя пользователя, от имени которого будет функционировать сервер Hazelcast.

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

sudo useradd elastic_user
sudo mkdir -p /var/cs/elastic_instance
sudo chown elastic_user:elastic_user /var/cs/elastic_instance
ring elasticsearch instance create --dir /var/cs/elastic_instance --owner elastic_user
ring elasticsearch --instance elastic_instance service create --username elastic_user --stopped

В данном примере:

  • elastic_instance ‑ название экземпляра Elasticsearch.

  • elastic_user ‑ имя пользователя, от имени которого будет функционировать сервер Elasticsearch.

Настройка базы данных (типовой механизм)

К моменту выполнения действий данного раздела PostgreSQL должен быть установлен на компьютере, где выполняется развертывание и настройка сервера взаимодействия. Описание выполнения необходимых действий следует искать в документации к используемой версии СУБД.

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

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

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

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

Для базы данных cs_db следует подключить расширения uuid-ossp (подробнее https://www.postgresql.org/docs/current/static/uuid-ossp.html). Для этого необходимо выполнить следующую команду базы данных:

CREATE EXTENSION IF NOT EXISTS "uuid-ossp";

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

ring cs --instance <cs_instance> jdbc pools --name common set-params --url jdbc:postgresql://localhost:5432/cs_db?currentSchema=public
ring cs --instance <cs_instance> jdbc pools --name common set-params --username <db_user>
ring cs --instance <cs_instance> jdbc pools --name common set-params --password <db_user_pwd>
ring cs --instance <cs_instance> jdbc pools --name privileged set-params --url jdbc:postgresql://localhost:5432/cs_db?currentSchema=public
ring cs --instance <cs_instance> jdbc pools --name privileged set-params --username <db_user>
ring cs --instance <cs_instance> jdbc pools --name privileged set-params --password <db_user_pwd>

В данном примере:

  • <cs_instance> ‑ название экземпляра сервера взаимодействия.

  • db_user ‑ имя пользователя, от имени которого сервер взаимодействия подключается к СУБД.

  • db_user_pwd ‑ пароль этого пользователя.

Настройка WebSocket

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

Копировать в буфер обмена

ring cs --instance cs_instance websocket set-params --hostname <cs_host>
ring cs --instance cs_instance websocket set-params --port <cs_port>

В данном примере:

  • <cs_host> ‑ имя или IP-адрес компьютера, на котором установлен сервер взаимодействия и к которому будет подключаться клиентское приложение системы взаимодействия (система «1С:Предприятие»).

  • <cs_port> ‑ сетевой порт, который будет использован для подключения к серверу взаимодействия клиентского приложения системы взаимодействия (системы «1С:Предприятие»).

Запуск необходимых сервисов

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

ring hazelcast --instance hc_instance service start
ring elasticsearch --instance elastic_instance service start
ring cs --instance cs_instance service start

В данном примере:

  • hc_instance ‑ название экземпляра Hazelcast.

  • elastic_instance ‑ название экземпляра Elasticsearch.

  • cs_instance ‑ название экземпляра сервера взаимодействия.

После запуска серверу взаимодействия требуется некоторое время для инициализации базы данных и прочих настроек.

Инициализация базы данных

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

curl -Sf -X POST -H "Content-Type: application/json" -d "{ \"url\" : \"jdbc:postgresql://localhost:5432/<cs_db>\", \"username\" : \"<db_user>\", \"password\" : \"<db_user_pwd>\", \"enabled\" : true }" -u <ia_user>:<ia_password> http://localhost:8087/admin/bucket_server

В данном примере:

  • <cs_db> ‑ имя базы данных сервера взаимодействия,

  • <db_user> ‑ имя пользователя, от имени которого сервер взаимодействия подключается к СУБД.

  • <db_user_pwd> ‑ пароль этого пользователя.

  • <ia_user>, <ia_password> ‑ имя пользователя и пароль для доступа к интерфейсу обслуживания сервера взаимодействия.

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

curl http://localhost:8087/rs/health
ring cs --instance cs_instance service status

Подключение к серверу:

ws://192.168.10.7:7422

ws://135.181.163.173:7422

Last updated