Содержание:
1. Установка и настройка сервера взаимодействия 1С
2. Настройка сервера системы взаимодействия на WSS подключение
3. Установка и настройка облачного хранилища файлов MinIO
4. Настройка сайта для подключения внешних пользователей системы
5. Подключение системы взаимодействия к платформе 1С: Предприятие
1. Установка и настройка сервера взаимодействия 1С
Первым делом, требуется скачать и установить необходимые дистрибутивы:
1. Postgresql версии 12 https://www.enterprisedb.com/downloads/postgres-postgresql-downloads;
2. Liberica Full JDK 11-ой версии https://releases.1c.ru/version_files?nick=Liberica11FullJDK&ver=11.0.12%2b7;
3. Утилита Openssl https://slproweb.com/download/Win64OpenSSL-3_0_9.msi;
4. Сервер взаимодействия 1С и обработка CollaborationSystemRegister для регистрации сервера взаимодействия 1С https://releases.1c.ru/version_files?nick=CollaborationSystem&ver=23.0.23.
Стоит отметить, что для каждой версии платформы, должна устанавливаться совместимая версия сервера взаимодействия 1С. В моём случае, установлена версия платформы 1С: Предприятие 8.3.23, поэтому должен устанавливаться сервер взаимодействия версии 23.0.23.
Установка postgresql, liberica jdk и openssl проста и не требует подробного разъяснения. Отмечу лишь пару моментов, а именно:
1) Выбор директории при openssl- установке
2) Необходимость запомнить пароль, указываемый для postgres пользователя, во время установки posgtresql
Установка сервера взаимодействия
Чтобы установить сервер взаимодействия 1С, необходимо распаковать дистрибутив из архива и запустить установочный файл 1ce-installer. В открывшемся окне нужно указать директорию, где будет располагаться сервер взаимодействия 1С и все его компоненты, а затем нажать “Установить”
Далее установщик выведет сообщение об успешном завершении инсталляции, нажмём “Готово” для выхода из программы установки
После установки дистрибутивов, необходимо добавить пути к liberika jdk и openssl в переменную среды Path
Также в Windows переменную Path следует добавлять путь к утилите ring, но у меня она добавилась автоматически.
Проверим, что все компоненты сервера взаимодействия установились корректно, отправив в cmd команду:
ring
Должны отобразиться 3 компонента: Сервер взаимодействия, Elasticsearch и Hazelcast.
Создание и настройка базы cs_db в postgresql
Перед выполнением настройки сервера взаимодействия 1C, необходимо создать и настроить базу cs_db в postgresql.
Для создания базы, потребуется воспользоваться программой pgAdmin 4, она устанавливается вместе с postgresql и позволяет работать с СУБД в графическом интерфейсе.
При первом запуске, необходимо установить pgAdmin- пароль
Далее необходимо раскрыть ниспадающий список вкладки “Servers” и подключиться к серверу PostgreSQL 12, введя пароль пользователя postgres, указанный во время установки postgresql
Создадим пользователя cs_user для работы с базой cs_db, нажав ПКМ на вкладке “Login/Group Roles” и выбрав пункты “Create” – “Login/Group Role”
Во вкладке “General” введём имя пользователя
Перейдём во вкладку “Definition”, где укажем пароль для пользователя cs_user
Во вкладке “Privileges” укажем необходимые права, после чего сохраним настройки нажав на “Save”
Создадим базу cs_db для работы с сервером взаимодействия 1С, нажав ПКМ на вкладке “Databases” и выбрав пункты “Create” – “Database”
Введём имя базы во вкладке “General” и сохраним изменения нажав на “Save”
Подключим расширение uuid-ossp, нажав ПКМ на базе cs_db и выбрав пункт “Query Tool”. В открывшемся редакторе введём следующий запрос:
CREATE EXTENSION
IF NOT EXISTS «uuid-ossp»
Отправим запрос, нажав на клавишу F5.
Настройка сервера взаимодействия 1С
Создадим директории и службы сервера взаимодействия, введя в командной строке следующие команды:
ring hazelcast instance
create —dir C:\cs\hc_instance
ring hazelcast
—instance hc_instance service create –stopped
ring elasticsearch
instance create —dir C:\cs\es_instance
ring elasticsearch
—instance es_instance service create —stopped
ring cs instance create
—dir C:\cs\cs_instance
ring cs —instance
cs_instance service create —stopped
Осуществим настройку 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
cs_user
ring
cs —instance cs_instance jdbc pools —name common set-params —password <пароль_пользователя_cs_user>
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
cs_user
ring
cs —instance cs_instance jdbc pools —name privileged set-params —password <пароль_пользователя_cs_user>
Настроим WebSocket протокол:
ring cs
—instance cs_instance websocket set-params —hostname <доменное_имя>
ring cs
—instance cs_instance websocket set-params —port <порт_сервера_взаимодействия>
“Не забывайте создавать правила для всех указываемых портов в брандмауэре Windows”
Настроим каталог для хранения бэкапов:
ring cs —instance
cs_instance backup set-params —storage C:\cs\cs_instance\dumps
Теперь необходимо запустить службы сервера взаимодействия с помощью команд:
ring
hazelcast —instance hc_instance service start
ring
elasticsearch —instance es_instance service start
ring
cs —instance cs_instance service start
Либо можно сделать это через диспетчер задач, из подменю “Службы”
После настройки сервера взаимодействия 1С, необходимо инициализировать базу данных cs_db, сделать это можно с помощью следующей команды:
curl
-Sf -X POST -H «Content-Type: application/json» -d «{ \»url\»
: \»jdbc:postgresql://localhost:5432/cs_db\», \»username\»
: \»cs_user\», \»password\» : \»<пароль пользователя cs_user>\», \»enabled\»
: true }» -u admin:admin
Пример успешного ответа:
{«id»:»4efdace4-6c60-414e-95cb-19b8dd39b6ff»,»url»:»jdbc:postgresql://localhost:5432/cs_db»,»username»:»cs_user»,»password»:»********»,»lastUsedAt»:null,»enabled»:true,»deleted»:false}
Проверим, что сервер взаимодействия 1С работает с помощью команды:
curl
http://localhost:8087/rs/health
Если всё установлено и настроено корректно, получим следующий ответ:
{«status»:»UP»,»mainDbOk»:true,»allShardsOk»:true,»hazelcast»:{«available»:true,»members»:[«127.0.0.1:5701″]},»elasticsearchOk»:true,»mediaClusterOk»:false,»mediaServers»:{},»pushOk»:false}
Установка и настройка сервера взаимодействия завершена. В том случае, если достаточно WS подключения, и никаких функций кроме обмена сообщениями не требуется, дальнейшие действия можно не выполнять.
2. Настройка сервера системы взаимодействия на WSS подключение
Если подключение к базе осуществляется через https, то и сервер взаимодействия должен работать по защищённому WSS протоколу.
Для настройки WSS подключения, требуется создать хранилище ключей Java KeyStore (JKS) и поместить туда сертификат, оформленный на доменное имя сервера, на котором располагается сервер взаимодействия 1С.
Сертификат можно приобрести или воспользоваться утилитой win-acme, чтобы получить бесплатный SSL сертификат letsencrypt. Для реализации этого метода, требуется создать виртуальный хост, прослушивающий стандартный порт http 80, я создал его с помощью стандартного веб-сервера IIS от Microsoft.
Создание виртуального хоста в веб-сервере IIS
Первым делом, необходимо создать директорию сайта в каталоге веб-сервера IIS C:\inetpub\wwwroot\доменное_имя
Затем, в директории сайта создадим файл index.html и добавим в него следующее содержимое:
<html>
<head>
<title>доменное_имя</title>
</head>
<body>
<h1>Welcome to the
club buddy!</em> </h1>
</body>
</html>
Возвращая простую html страничку, можно будет убедиться в том, что сайт работает.
Для того, чтобы создать виртуальный хост, требуется открыть диспетчер служб IIS и добавить веб-сайт, нажав ПКМ на пункте “сайты”
Далее, необходимо заполнить окно создания веб-сайта следующим образом и нажать “ОК”
Теперь проверим работу сайта, введя имя домена в адресной строке, или нажав кнопку “обзор веб-сайта” на панели действий IIS
Если всё настроено корректно, сайт вернёт созданную нами html страницу.
Получение сертификата с помощью утилиты win-acme
После завершения настройки виртуального хоста, можно приступать к получению сертификата. Скачаем утилиту win-acme по ссылке https://www.win-acme.com/.
После скачивания, необходимо распаковать архив с программой в удобное место. Лично я распаковал win-acme в корневой каталог IIS, создав там папку letsencrypt
Запустим файл wacs.exe от имени администратора и выберем пункт “Create certificate (full options)”, введя “M” в консоли приложения
Выберем пункт “Read bindings from IIS”, чтобы вывести список сайтов из IIS
Далее приложение предложит выбрать сайт из списка или ввести его вручную
Выберем пункт “Pick *all* bindings”, чтобы выбрать все привязки
Подтвердим выбор, нажав на клавишу “y”, а затем проигнорируем предложение ввести дополнительное имя, нажав на “Enter”
Далее выберем пункт “Single certificate”, чтобы создать единый сертификат
Выберем пункт “[http] Save verification files on (network) path”, после чего введём путь к сайту, чтобы создать там файлы для подтверждения владения доменом
Далее приложение предложит выбрать тип ключа, нам нужен “RSA key”
Выберем пункт “PEM encoded files”
Введём путь, где будут храниться файлы сертификата. Я указал путь C:\Certificates
Выберем пункт “Type /paste in console”, и введём в консоли приложения пароль для закрытого ключа.
Запомните или запишите пароль, т.к. он потребуется при дальнейшей настройке наших сервисов на SSL подключение.
Далее приложение спросит, нужно ли сохранить сертификат в другом формате, выберем пункт “ No (additional) store steps”, чтобы оставить только ранее выбранный формат сертификата
На следующем шаге также откажемся от дополнительных действий, выбрав пункт “No (additional) installation steps”
Наконец получим сообщение об успешном создании сертификата
Настройка WSS подключения
Файлы сертификата были сохранены по указанному при создании пути C:\Certificates
Для того, чтобы импортировать файлы chain.pem и key.pem в хранилище ключей JKS, необходимо объединить их в единый файл формата PKCS12. Сделаем это с помощью ранее установленной утилиты openssl.
Откроем командную строку и введём следующие команды:
openssl
pkcs12 -export -in C:\Certificates\koderline-dev.ru-chain.pem -inkey C:\Certificates\koderline-dev.ru-key.pem
-out C:\cs\cs_instance\data\security\pkcs.p12 -name letsencrypt
«При вводе первой команды,
потребуется указать пароль от закрытого ключа, а затем задать пароль для файла pkcs.p12»
keytool
-importkeystore -destkeystore
C:\cs\cs_instance\data\security\websocket-keystore.jks -srckeystore
C:\cs\cs_instance\data\security\pkcs.p12 -srcstoretype PKCS12 -alias
letsencrypt
«При вводе второй, сначала
указываем пароль от файла pkcs.p12, а затем задаём пароль от хранилища JKS»
Первой командой мы объединили файлы сертификата в единый файл pkcs.p12, а второй создали хранилище ключей JKS, сразу импортировав в него получившийся файл.
Настроим сервер взаимодействия на WSS подключение с помощью команд:
ring cs —instance
cs_instance websocket set-params —wss true
ring cs —instance
cs_instance websocket set-params —keystore-path C:\cs\cs_instance\data\security\websocket-keystore.jks
ring cs —instance
cs_instance websocket set-params —keystore-password <пароль_JKS>
ring cs —instance
cs_instance websocket set-params —keystore-format JKS
Теперь подключение сервера взаимодействия 1С будет осуществляться через защищённый WSS протокол.
3. Установка и настройка облачного хранилища файлов MinIO
Для добавления функционала обмена файлами, необходимо настроить облачное хранилище Amazon S3 MinIO, и подключить его к серверу взаимодействия 1С.
Установка хранилища файлов MinIO
Откроем PowerShell от имени администратора и по очереди введём следующие команды:
Invoke-WebRequest
-Uri «https://dl.min.io/server/minio/release/windows-amd64/minio.exe»
-OutFile «C:\Data\minio.exe»
setx
MINIO_ROOT_USER <логин_minio>
setx
MINIO_ROOT_PASSWORD <пароль_minio>
C:\Data\minio.exe
server С:\Data —console-address «:9001»
Чтобы запуск MinIO осуществлялся автоматически, необходимо установить его как службу. Для этого скачаем архив minio-service-master.zip по следующей ссылке https://github.com/minio/minio-service, после чего распакуем его, и скопируем файл install-service.ps1 из папки windows в каталог C:\Data, где установлен сервер MinIO.
Откроем PowerShell и установим службу сервера MinIO с помощью команды:
С:\Data\install-service.ps1
Откроем каталог с установленным сервером MinIO и отредактируем файл minio-service.xml:
<service>
<id>MinIO</id>
<name>MinIO</name>
<description>MinIO is a
high performance object storage server</description>
<executable>minio.exe</executable>
<env
name=»MINIO_ROOT_USER» value=»логин_minio»/>
<env
name=»MINIO_ROOT_PASSWORD» value=»пароль_minio»/>
<arguments>server
C:\Data</arguments>
<logmode>rotate</logmode>
</service>
Теперь можно запустить службу и пользоваться облачным хранилищем, но подключение будет осуществляться через незащищённый http протокол.
Настройка сервера MinIO на SSL подключение
Для того, чтобы включить режим SSL подключения для MinIO, необходимо скопировать файлы сертификата chain.pem и key.pem в каталог C:\Users\имя_пользователя\.minio\certs и переименовать их следующим образом:
chain.pem — public.crt
key.pem — private.key
Отредактируем файл minio-service.xml:
<service>
<id>MinIO</id>
<name>MinIO</name>
<description>MinIO is a
high performance object storage server</description>
<executable>minio.exe</executable>
<env
name=»MINIO_ROOT_USER» value=»логин_minio»/>
<env
name=»MINIO_ROOT_PASSWORD» value=»пароль_minio»/>
<env name=»MINIO_CERT_PASSWD»
value=»пароль_закрытого_ключа_сертификата»/>
<arguments>server C:\Data —address «:порт_minio»</arguments>
<logmode>rotate</logmode>
</service>
В конфигурационный файл сервера была добавлена переменная MINIO_CERT_PASSWD, где задаётся пароль от закрытого ключа для созданного ранее сертификата, и параметр —address для аргумента server, чтобы явно указать порт подключения для сервера MinIO.
Важный момент при настройке SSL подключения для MinIO заключается в том, что служба сервера должна запускаться от имени пользователя, который устанавливал MinIO. Пользователя, в чей каталог были скопированы файлы сертификата. В противном случае, служба MinIO просто не будет запускаться.
Чтобы назначить пользователя, от которого будет запускаться сервис, необходимо перейти в свойства службы MinIO и, во вкладке “Вход в систему”, выбрать нужную учётную запись
После назначения пользователя для запуска сервиса, можно запустить службу и использовать протокол https для подключения к хранилищу.
Подключение хранилища файлов MinIO к серверу взаимодействия
Перед подключением хранилища к серверу взаимодействия, необходимо создать контейнер, где будут храниться передаваемые файлы.
Введём в адресной строке браузера адрес подключения к хранилищу MinIO:
https://<доменное_имя>:<порт_minio>
Авторизуемся с помощью заданных при установке данных, которые также были указаны в переменных MINIO_ROOT_USER и MINIO_ROOT_PASSWORD конфигурационного файла minio-service.xml
Перейдём в раздел “Buckets” и выберем пункт “Create Bucket”. В поле “Bucket Name” укажем имя контейнера cs-bucket, после чего нажмём “Create Bucket” для завершения создания
После создания, необходимо зайти в параметры контейнера и изменить права доступа на “public”
Теперь можно подключить MinIO к серверу взаимодействия. На портале ИТС предлагается сделать это с помощью утилиты curl
Но у меня подключить хранилище таким образом не получилось, я сделал это по аналогии с добавлением расширения uuid-ossp, т.е. отправил следующий SQL запрос в базу 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’, ‘https://<доменное_имя>:<порт_minio>’,’https://
<доменное_имя>:<порт_minio>/cs-bucket’,
‘cs-bucket’,
»,
‘логин_ minio’,
‘пароль_minio’,
‘V2’, false,
1073741824, 1073741824, 1048576000, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL,
NULL, NULL, ‘ACTIVE’, false, true, 0, 3200,
NULL,’AMAZON’,’DEFAULT’,1073741824);
Теперь в системе взаимодействия доступен функционал обмена файлами.
4. Настройка сайта для подключения внешних пользователей системы
Для добавления в обсуждения внешних пользователей, необходимо настроить специальный сайт, который устанавливается вместе с сервером взаимодействия и находится по следующему пути C:\Program Files\1C\1CE\components\1c-cs-site-0.2.11-x86_64. Настроим его с помощью веб-сервера IIS и импортируем созданный ранее сертификат, чтобы подключение осуществлялось по https.
Кроме файлов сертификата в pem-формате, утилита win-acme создаёт единый сертификат в pfx формате, и размещает его по следующему пути: C:\ProgramData\win-acme\acme-v02.api.letsencrypt.org\Certificates, я импортировал в IIS именно его.
Для импорта сертификата pfx в IIS, необходим пароль от сертификата. Чтобы узнать его, запустим утилиту win-acme и выберем пункт “Manage renewals”
Далее выберем пункт “Show details for the renewal”, чтобы отобразить детальную информацию об обновляемых сертификатах
Скопируем и сохраним пароль из поля “.pfx password”
На начальной странице сервера в IIS перейдём во вкладку “Сертификаты сервера”, а затем выберем пункт “Импортировать” на панели действий IIS
Заполним окно импорта, указав путь и пароль от сертификата, а также хранилище, в котором будет располагаться сертификат, после чего нажмём “OK”
Создадим сайт по аналогии с виртуальным хостом, заполнив поля следующим образом
Из отличий можно увидеть другое имя сайта. Его, как и порт 9999, можно задавать по желанию, физический путь указан до каталога сайтом 1c-cs-site-0.2.11-x86_64, выбран протокол подключения https и импортированный ранее сертификат.
Проверим работу сайта, введя имя домена с указанным портом в адресной строке, или нажав кнопку ”обзор веб-сайта” на панели действий в IIS
Должна вернуться html страница сайта 1c-cs-site-0.2.11-x86_64.
Отредактируем файл config.json, который находится в каталоге сайта 1c-cs-site-0.2.11-x86_64, указав адрес подключения сервера взаимодействия в поле “serverURL”
{
«serverURL»: «wss://<доменное_имя>:<порт_сервера_взаимодействия>»,
«VAPIDPublicKey»: «****************************************************************»
}
Суть проделанных действий состоит в том, что веб-сервер, при запросе на адрес https://<доменное_имя>:<порт_сайта>, должен отдать index.html сайта 1c-cs-site-0.2.11-x86_64 просто как статику, после чего index.html запустится в браузере пользователя и на базе адреса сервера взаимодействия в config.json сам установит соединение с сервером взаимодействия 1С.
Подключим сайт к серверу взаимодействия:
ring cs —instance
cs_instance site set-params
—public-url https://<доменное_имя>:<порт_сайта>
Теперь в системе взаимодействия доступна функция добавления в обсуждения внешних пользователей.
5. Подключение системы взаимодействия к платформе 1С: Предприятие
Подключение системы взаимодействия осуществляется с помощью обработки CollaborationSystemRegister, загрузка которой была произведена ранее.
Откроем приложение 1С, перейдём во вкладку “Сервис и настройки”, затем выберем ”Файл” – “Открыть”
Откроем обработку CollaborationSystemRegister, а затем выполним подключение, заполнив поля следующим образом
В случае, если WSS подключение не настраивалось, указываем WS протокол для подключения.
Если всё установлено и настроено корректно, получим сообщение об успешной регистрации системы взаимодействия.
Специалист компании «Кодерлайн»
Артем Слатин
Подписывайтесь в соц сетях. Там провожу конкурсы и публикую еще больше контента.
Сервер взаимодействия — что за зверь?
Сервер взаимодействия, система взаимодействия – это механизм, позволяющий взаимодействовать между собой клиентским приложениям, серверу и пользователям одной или нескольких информационных баз.
В состав дистрибутива входят следующие компоненты:
- Сервер системы взаимодействия.
- Распределенное хранилище Hazelcast. В нем хранятся сессии пользователей, подписки на события, очереди.
- Поисковый кластер Elasticsearch. Используется для подбора пользователей и полнотекстового поиска.
Сервер взаимодействия может быть установлен на Windows или Linux. Для операционной системы Windows в дистрибутиве есть программа установки, которая устанавливает все три компонента на один компьютер, и стандартным образом настраивает их. Это самый простой вариант развертывания сервера взаимодействия.
Моя инструкция
Вот и я решил разобраться с этой системой. Сел с утра, скачал официальную версию 1С:Сервер взаимодействия, почитать можете здесь, открыл youtube и посмотрел ролики по установке. Разворачиваю чистую виртуалку и начинаю повторять. Конечно же ничего не получилось.
Ну думаю на ИТС плохого не посоветуют, иду туда, повторяю и конечно же ничего не получается. Скачиваю другую версию, ставлю, опять не хочет. Отключаю хардкор, ставлю по самой простой инструкции, вроде все работает и хрен там. Начинаю пытаться в логах, “курю мануалы”, короче весь день фигней занимаюсь и оказывается на ИТС тоже написано далеко не все.
Запишись на тренинг
РАЗБЕРИСЬ СО ВСЕМИ ВОЗМОЖНОСТЯМИ API TELEGRAM ПРИ РАБОТЕ ИЗ 1С
Может это конечно баг, ну блин там четко написано, установили и дальше можете не читать. После исследования всех конфигурационных файлов я замечаю, что одного нет. То есть инсталлятор его не создал. Создаю его командой из хардкорного мануала и все работает.
В итоге записал видео в котором покажу как установить 1с сервер взаимодействия на windows server 2019. Устанавливать будем сервер взаимодействия версии 8.0.15.
В следующих видео мы рассмотрим различные варианты использования сервера взаимодействия при работе в 1С, в том числе и новую возможность по созданию ботов.
Так что подписывайтесь на канал, ставьте лайк если видео было полезным, а если ставите дизлайк, то обязательно напишите в комментариях почему. Я читаю все комментарии, прислушиваюсь к замечаниям и улучшаю контент для вас.
ring cs --instance cs websocket set-params --hostname localhost
ring cs --instance cs websocket set-params --port 9000http://localhost:8087/rs/health
Привет программисты 1С, с вами Низамов Илья. Сегодня я покажу, как установить сервер взаимодействия 1С 10 версии на windows server 2016. Так же мы установим правильную версию JDK и Postgresql.
Все команды из видео вы можете найти в описании к видео и не забываем ставить лайки и подписываться на канал, так как скоро выйдет видео с созданием telegram ботов в сервере взаимодействия 1С.
Если появились вопросы, то пишите в комментариях, а так же задавайте их в моем чате telegram, ссылка в описании.
https://t.me/forge1s
Скачиваем Liberica JDK Full 11 версии
https://libericajdk.ru/pages/downloads/#/java-11-lts
Скачиваем Postgresql 12.6
https://www.enterprisedb.com/downloads/postgres-postgresql-downloads
Устанавливаем
Запускаем утилиту администрирования
Создаем пользователя
cs
cs-pass
Создаем базу
1ce-cs
Открываем Query tools
CREATE EXTENSION IF NOT EXISTS “uuid-ossp”;
Устанавливаем СВ в командной строке
Создаем instance
ring hazelcast instance create –dir C:cshazelcast
ring elasticsearch instance create –dir C:cselasticsearch
ring cs instance create –dir C:cscs
ring hazelcast –instance hazelcast service create
ring elasticsearch –instance elasticsearch service create
ring cs –instance cs service create
Проверяем
http://localhost:8087/rs/health
Конфигурируем cs для доступа с других компьютеров
ring cs –instance cs websocket set-params –hostname 10.10.1.40
ring cs –instance cs websocket set-params –port 9090
curl -Sf -X POST -H “Content-Type: application/json” -d “{ “url” : “jdbc:postgresql://localhost:5432/postgres”, “username” : “postgres”, “password” : “postgres”, “enabled” : true }” -u admin:admin http://localhost:8087/admin/bucket_server
Добавляем порт 9090 в брандмауэр
ws://10.10.1.40:9090
admin@nizamov.school
source
windows server
Доброго времени суток, размещу небольшую шпаргалку по установке и настройке. т.к. не являюсь уверенным администратором ОС на базе Linux, мне требуется чуть больше информации, чем дается в официальных источниках. По этому использую еще и стороннюю.
Основные ситочники:
https://its.1c.ru/db/cs20doc#bookmark:cs:TI000000003
https://its.1c.ru/db/metod8dev#content:5988:hdoc
https://infostart.ru/1c/articles/1118799/
Подготовка Linux CentOS
Скачал дистрибутив CentOS-7-x86_64-Minimal-2009.iso с оф. сайта: http://isoredirect.centos.org/centos/7/isos/x86_64/
Не забываем при установке настроить сеть
По моему потом были работы с установкой sudo. Это нужно делать локально, где установлено ОС под root ом.
Используйте команду adduser, чтобы добавить нового пользователя в систему. Далее по тексту username — это имя вашего пользователя.
adduser username
Дадим новому пользователю новый пароль
passwd username
Используя команду usermod, чтобы добавить пользователя в группу wheel. В системе CentOS все пользователи, состоящие в группе wheel, имеют права sudo
usermod -aG wheel username
Если все правильно настроили, то протестируем вход, перейдя в сессию нового системного пользователя
su - username sudo ls -la /root
Если успешно, то супер. Не забываем как минимум как создать нового пользователя в системе и двигаемся дальше.
Кстати, есть еще один способ добавления пользователя в sudo. Это при помощи редактирования фала. Чтобы отредактировать файл /etc/sudoers, используйте команду visudo. Эта команда проверяет файл на наличие синтаксических ошибок при его сохранении.
Прокрутите вниз до конца файла и добавьте следующую строку:
username ALL=(ALL) NOPASSWD:ALL
Другой распространенный пример — позволить пользователю запускать только определенные команды через sudo. Например, чтобы разрешить использовать только команды du и ping: username ALL=(ALL) NOPASSWD:/usr/bin/du,/usr/bin/ping
Вместо того, чтобы редактировать файл sudoers, вы можете добиться того же, создав новый файл с правилами авторизации в каталоге /etc/sudoers.d. Добавьте то же правило, что и в файл sudoers: echo «username ALL=(ALL) NOPASSWD:ALL» | sudo tee /etc/sudoers.d/username
Такой подход делает управление привилегиями sudo более понятным. Название файла не важно. Это обычная практика, когда имя файла совпадает с именем пользователя.
У меня опять возникли проблемы с DNS на одном из компьютеров.
Чтобы не забыть пропишу сюда как решать:
Находим файл с названием своего сетевого интерфейса тут: /etc/sysconfig/network-scripts
узнать его можно при помощи команды: ip addr
Редактируем файл добавляем DNS или меняем параметры:
# vi /etc/sysconfig/network-scripts/ifcfg-eno1 NAME="eno1" ONBOOT=yes BOOTPROTO=static HWADDR="ac:1f:6b:f6:3b:7e" IPADDR="82.148.21.50" NETMASK="255.255.255.0" GATEWAY="82.148.21.1" TYPE=Ethernet DNS1="82.148.21.1"
Перезагружаем: systemctl restart network
DNS должен появится в файле /etc/resolv.conf
# grep "nameserver" /etc/resolv.conf nameserver ”82.148.21.1”
Мне понравилось как это все описано на этой странице: _https://selectel.ru/blog/setup-network-centos-7/
Сетевые настройки CentOS
Отключаем ipv6.
Добавляем в файл /etc/sysctl.conf две строки
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
Настраиваем файрвол.
Проверяем работу файрвола. По умолчанию должен быть установлен firewalld
systemctl status firewalld
Выключим его на стадии установки, чтобы не задумываться далее.
systemctl stop firewalld
systemctl disable firewalld
Потом можно его включить и настроить.
Посмотрим, что разрешено постоянно: firewall-cmd —permanent —list-all
Так как мы отключили ipv6, можно убрать правило: firewall-cmd —permanent —zone=public —remove-service=dhcpv6-client
Добавляем: firewall-cmd —permanent —zone=public —add-port=9094/tcp
Перезагружаем: firewall-cmd —reload
Смотрим: firewall-cmd —permanent —list-all
Установить Java
по инструкции:
https://bell-sw.com/pages/repositories/#yum
Выбираем установку репозитария: YUM Repository (.rpm-based Linux Distributions)
echo | sudo tee /etc/yum.repos.d/bellsoft.repo > /dev/null << EOF
[BellSoft]
name=BellSoft Repository
baseurl=https://yum.bell-sw.com
enabled=1
gpgcheck=1
gpgkey=https://download.bell-sw.com/pki/GPG-KEY-bellsoft
priority=1
EOF
Обновляйте репозитории и устанавливайте пакеты
sudo yum update
sudo yum install bellsoft-java11
Скачка дистрибутивов
Сервер взаимодействия с оф сайта желательно последнюю, т.к. устаревшие, не будут открываться в 1С Предприятии прошлых версий. Но более новый дистрибутив сервера взаимодействия, может еще быть не полностью описан. А минимальная разница, может повлиять на успешность установки всей системы. Так что собираем все силы в кулак и с учетом что вся работа может быть сделана насмарку, продолжаем установку.
Я себе скачал:
Сам сервер взаимодействия: 1c_cs_12.0.24_linux_x86_64.tar.gz
Сервер баз данных: postgresql_14.4_1.1C_x86_64_rpm.tar.bz2
Аддоны к серверу базы: postgresql_14.4_1.1C_x86_64_addon_rpm.tar.bz2
На Линухе кладем в свой домашний каталог. я использую загрузку по sftp.
Распаковываем. Желательно создать внутри отдельный каталог и туда уже распаковать.
mkdir 1c_cs mv xvzf 1c_cs_12.0.24_linux_x86_64.tar.gz ./1c_cs mv xvjf postgresql_14.4_1.1C_x86_64_rpm.tar.bz2 ./1c_cs mv postgresql_14.4_1.1C_x86_64_addon_rpm.tar.bz2 ./1c_cs mv tar xvzf centos_7.7.1908.x64.tar.gz ./1c_cs cd ./1c_cs tar xvzf 1c_cs_12.0.24_linux_x86_64.tar.gz tar xvjf postgresql_14.4_1.1C_x86_64_rpm.tar.bz2 tar xvjf postgresql_14.4_1.1C_x86_64_addon_rpm.tar.bz2 tar xvzf centos_7.7.1908.x64.tar.gz
Если не удалось распаковать, копируем ошибку и в интернете смотрим, какой пакет нужно установить.
Мне нужно было установить bzip2
Установка сервера взаимодействия.
Проверку цифровой подписи можно отключить указав параметр «—ignore-signature-warnings».
sudo ./1ce-installer-cli install или sudo ./1ce-installer-cli install --ignore-signature-warnings". Параметры можно посмотреть тут: https://its.1c.ru/db/inst10doc/content/10024/hdoc
Установка PostgreSQL
sudo yum install libpython3.6m.so.1.0 cd "centos 7.7.1908.x64"/ cd "libs for PostgreSQL 14"/ sudo rpm -ihv libicu-50.2-3.el7.x86_64.rpm libxslt-1.1.28-5.el7.x86_64.rpm cd .. cd .. cd postgresql-14.4-1.1C_x86_64_rpm/ sudo rpm -ihv postgresql14-1c-14.4-1.el7.x86_64.rpm postgresql14-1c-libs-14.4-1.el7.x86_64.rpm postgresql14-1c-contrib-14.4-1.el7.x86_64.rpm postgresql14-1c-server-14.4-1.el7.x86_64.rpm
Задать пароль “postgres” пользователю postgres
sudo passwd postgres
su postgres /usr/pgsql-14/bin/initdb -D /var/lib/pgsql/14/data exit Запускаем: sudo systemctl enable postgresql-14 sudo systemctl start postgresql-14 Проверяем что запущено: sudo systemctl status postgresql-14 Далее: su postgres psql Мы в базе postgres=#. Выполняем команды базы.
CREATE DATABASE cs_db; \c cs_db CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; \q
Выходим из базы и перезапускаем
exit sudo systemctl restart postgresql-14
Установим PgAdmin
Скачиваем от сюда: https://www.pgadmin.org/
Если возникают ошибки подключения, тогда нужно разрешить подключение на сервере. Открываем на редактирование файл sudo vi /var/lib/pgsql/14/data/postgresql.conf
Изменяем настройку на: listen_addresses = ‘*’
Далее на сервере PG добавляем, с каких компьютерах или сетей, можно будет подключаться:
sudo vi /var/lib/pgsql/14/data/pg_hba.conf
В моем случае нужно был добавить строку:
host all all 192.168.0.0/24 trust
Продолжаем установку
Перейдем в root режим. Нужно установить переменную JAVA_HOME.
su -l (я использую: sudo -i) export JAVA_HOME=/usr/lib/jvm/bellsoft-java11.x86_64/
Установка сервера взаимодействия
$useradd cs_user $mkdir -p /var/cs/cs_instance $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 --java-home $JAVA_HOME --stopped
Установка инстанс Hazelcast
$useradd hc_user
$mkdir -p /var/cs/hc_instance
$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 —java-home $JAVA_HOME —stopped
Установка инстанс Elasticsearch
$ useradd elastic_user $ mkdir -p /var/cs/elastic_instance $ 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 --java-home $JAVA_HOME --stopped
Настройка JDBC
$ 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 postgres $ ring cs --instance cs_instance jdbc pools --name common set-params --password postgres
$ 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 postgres $ ring cs --instance cs_instance jdbc pools --name privileged set-params --password postgres
Настройка WebSocket.
cs_host — имя или IP-адрес компьютера, на котором установлен сервер взаимодействия и к которому будет подключаться клиентское приложение системы взаимодействия (система «1С:Предприятие»).
9094 — порт, на на который нужно будет подключаться
$ ring cs --instance cs_instance websocket set-params --hostname cs_host $ ring cs --instance cs_instance websocket set-params --port 9094
Стартуем
$ ring hazelcast --instance hc_instance service start
$ ring elasticsearch --instance elastic_instance service start
$ ring cs --instance cs_instance service start
Проверим все ли запустилось
$ curl http://localhost:8087/rs/health
Должно выйти что то подобное: {«status»:»UP»,»mainDbOk»:true,»allShardsOk»:true,»hazelcast»:{«available»:true,»members»:[«127.0.0.1:5701″]},»elasticsearchOk»:true,»mediaClusterOk»:false,»mediaServers»:{},»pushOk»:false,»services»:{«available»:true,»unsatisfied»:[]}}
Если что то не так, логи в помощь:
/var/cs/cs_instance/logs/
/var/cs/hc_instance/logs/
/var/cs/elastic_instance/logs/
Теперь нужно соединить базу данных с сервером взаимодействия. Выполняется через запрос адресной строки
$ curl -Sf -X POST -H "Content-Type: application/json" -d "{ \"url\" : \"jdbc:postgresql://localhost:5432/cs_db\", \"username\" : \"postgres\", \"password\" : \"postgres\", \"enabled\" : true }" -u admin:admin http://localhost:8087/admin/bucket_server
Если все удачно получилось то ответ должен быть таким: {«id»:»b844212d-9744-4cb0-9e2a-8377185d8222″,»url»:»jdbc:postgresql://localhost:5432/cs_db»,»username»:»postgres»,»password»:»postgres»,»lastUsedAt»:null,»enabled»:true,»deleted»:false}
Если мы включили файервол, тогда нужно открыть порты:
$ firewall-cmd --zone=public --add-port=9094/tcp --permanent $ firewall-cmd --reload
Ну теперь вы должны зарегистрировать сервер взаимодействия в 1С: Предприятие. Запустите обработку входящую в поставку сервера взаимодействия укажите адрес ws://имя вашего СВ:9094.
Адрес эл почты будет служить как уникальный идентификатор. Если в разных базах он будет один, при регистрации, то можно даже объединить чаты.
Подключение медиа сервера как добавление файлов в переписку, будет описано в следующей части. Часть 2. Ожидайте.