Установка на новый сервер сервер.
Обновить сервер и установить vmware-tools если у вас виртуальная машина.
Установка VMware Tools на Centos
Руководство по установке Liberica JDK 11.0.11+9
Устанавливаем необходимые пакеты.
#yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm -y #yum install readline libtermcap krb5-libs openssl libicu50 libicu-devel net-tools mc wget tcl bzip2 unzip zip bind-utils llvm5.0-devel centos-release-scl llvm-toolset-7 -y
Так как этот сервер у нас за NAT отключаем файрволл
#systemctl stop firewalld
#systemctl disable firewalld
#systemctl status firewalld
Отключаем Selinux
#sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinux #sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
Отключаем ipv6 как рекомендует фирма 1С
Добавляем в файл две строки
#mcedit /etc/sysctl.conf
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
Скачиваем с сайта 1С PostgreSQL и 1С:Сервер взаимодействия все заливаем на сервер.
PostgreSQL12
Поднимем PostgreSQL12 с дистрибутива 1С.
Распаковка архивов
#tar -xvf postgresql_12.7_1.1C_x86_64_rpm.tar.bz2 #tar -xvf postgresql_12.7_1.1C_x86_64_addon_rpm.tar.bz2
Установка PostgresSQL
#cd postgresql-12.7-1.1C_x86_64_rpm #yum localinstall -y *.rpm
Установка дополнений
#cd /root/postgresql-12.7-1.1C_x86_64_addon_rpm/ #yum localinstall -y *.rpm
Будем держать сами базы в определенной папке.
#mkdir /home/pgsql
дадим права на эту папку
#chown -R postgres:postgres /home/pgsql #su - postgres -c "/usr/pgsql-12/bin/initdb -D /home/pgsql/" #mcedit /usr/lib/systemd/system/postgresql-12.service
находим в файле
Environment=PGDATA=/var/lib/pgsql/10/data/ и меняем на свое значение Environment=PGDATA=/home/pgsql/
Чтобы изменения применились, перезапускаем
#systemctl daemon-reload
После перезагрузки запустим вручную и добавим в автозагрузку
#systemctl start postgresql-12 #systemctl enable postgresql-12 #systemctl status postgresql-12
Задаем пароль для пользователя postgres:
#passwd postgres
Заходим в систему под данной учетной записью:
su - postgres
Подключаемся к сервису:
-bash-4.2$ psql
Создаём пользователя (cs_user) для Сервера взаимодействия
CREATE USER db_user WITH PASSWORD 'password';
и создаём базу (cs_db) для Сервера взаимодействия, делаем ранее созданного пользователя её владельцем
CREATE DATABASE cs_db OWNER db_user;
Подключаемся к созданной базе
\c cs_db
Подключаем расширение uuid-ossp
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
Выходим из оболочки psql и отключаемся от системы пользователем postgres:
\q
exit
Для работы Сервера взаимодействия, сервер PostgreSQL должен поддерживать аутентификацию по паролю.
Настраиваем. Найдём где находятся файлы конфигурации PostgreSQL
ps aux | grep postgres | grep — -D
или #su — postgres -c «psql -t -P format=unaligned -c ‘show hba_file’;»
Открываем файл
#mcedit /home/pgsql/pg_hba.conf
и добавляем в него две строки, где cs_db имя базы , db_user имя пользователя. Желательно в начале всех разрешений.
local cs_db db_user password
host cs_db db_user 127.0.0.1/32 password
Перегружаем PostgreSQL
#systemctl restart postgresql-12
Проверяем
#psql -Udb_user cs_db
Система должна спросить пароль ( вводим тот что указали при создании пользователя db_user) и пустить в оболочку
Выходим из оболочки psql
\q
Пропишем Java в переменные среды в PATH и JAVA_HOME
Для этого в начале проверим все ли соответствует действительности.
#which java
если у нас выводит
/usr/bin/which: no java in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
То значит нужно прописать создадим файл
#mcedit /etc/profile.d/java.sh
и пропишем в нем следующее:
#!/bin/bash
JAVA_HOME=/usr/java/default/
PATH=$JAVA_HOME/bin:$PATH
export PATH JAVA_HOME
export PATH=$PATH:/opt/1C/1CE/components/1c-enterprise-ring-0.19.5+12-x86_64
export CLASSPATH=.
далее делаем этот файл исполняемым
#chmod +x /etc/profile.d/java.sh
далее что бы это работало нужно сделать символьную ссылку.
#ln -s /usr/lib/jvm/bellsoft-java11.x86_64 /usr/java/default
если не будет каких то каталогов то создаем.
Перезапускаем файл с нашими параметрами.
#source /etc/profile.d/java.sh
Проверяем
#echo $JAVA_HOME
/usr/java/default/
#which java
/usr/java/default/bin/java
#export
Должно присутствовать среди прочего.
Переменная окружения JAVA_HOME
declare -x JAVA_HOME=»/usr/java/default»
В переменной окружения PATH каталог с установленной утилитой ring.
declare -x PATH=»/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/opt/1C/1CE/components:/root/bin»
Переходим к установке компонентов самого сервера взаимодействия
Перед установкой лучше перезагрузить сервер!!!
Для установки необходимо запустить программу установки. Для этого перейдем куда залили дистрибутив и разархивируем дистрибутив.
#tar -xvf 1c_cs_10.0.47_linux_x86_64.tar.gz
запустим установку
#sudo ./1ce-installer-cli install
Установка продукта началась:
> 1С:Сервер взаимодействия (10.0.47)
> (c) 1C-Soft LLC, 2021. Все права защищены.
- Копирование файлов компонента Hazelcast для 1С:Сервера взаимодействия.
- Копирование файлов компонента 1С:Предприятие - Сервер взаимодействия.
- Копирование файлов компонента Elasticsearch для 1С:Сервера взаимодействия.
- Копирование файлов компонента Утилита командной строки Ring.
Установка продукта завершена успешно.
Hazelcast
Для начальной инициализации сервера 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
В данном примере: ● ‑ название экземпляра Hazelcast.
● ‑ имя пользователя, от имени которого будет функционировать сервер Hazelcast.
Elastisearch
Для начальной инициализации сервера 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
В данном примере: ● ‑ название экземпляра Elasticsearch.
● ‑ имя пользователя, от имени которого будет функционировать сервер Elasticsearch.
Сервер взаимодействия
Для начальной инициализации сервера взаимодействия необходимо выполнить следующие действия:
#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
В данном примере: ● ‑ название экземпляра сервера взаимодействия.
● ‑ имя пользователя, от имени которого будет функционировать сервер взаимодействия.
Настройка базы данных
Необходимо выполнить настройку параметров 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 ******
#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 *******
Настройка WebSocket
Для взаимодействия сервера взаимодействия и клиентского приложения используется протокол WebSocket. Для настройки работы этого протокола следует выполнить следующие действия:
#ring cs --instance cs_instance websocket set-params --hostname 1cCommunication.kompromiss.loc
#ring cs --instance cs_instance websocket set-params --port 8181
В данном примере:
● – имя или IP-адрес компьютера, на котором установлен сервер взаимодействия и к которому будет подключаться клиентское приложение системы взаимодействия (система «1С:Предприятие»).
● – IP-порт, который будет использован для подключения к серверу взаимодействия клиентского приложения системы взаимодействия (системы «1С:Предприятие»).
Теперь самое интересное если мы попытаемся запустить службы у нас не запуститься и в логах каждой службы будет написано.
«Не могу найти библиотеку JVM»
После долгих мытарств я дошел до самих служб hazelcast, elasticsearch и cs. Можно посмотреть что они умеют.
#ring hazelcast help
#ring elasticsearch help
#ring cs help
Короче они не видят явно параметры JAVA_HOME. Делаем следующее:
#ring hazelcast --instance hc_instance service java-home set /usr/java/default
#ring elasticsearch --instance elastic_instance service java-home set /usr/java/default
#ring cs --instance cs_instance service java-home set /usr/java/default
Запуск необходимых сервисов
После окончания настройки необходимо запустить настроенные сервисы:
#ring hazelcast --instance hc_instance service start
#ring elasticsearch --instance elastic_instance service start
#ring cs --instance cs_instance service start
Инициализация ICE-сервера
Для использования видеоконференций необходимо выполнить настройку базы данных для использования протокола ICE, который необходим для использования WebRTC. Это действие необходимо выполнять только в том случае, если предполагается совершать видеозвонки, участники которых будут расположены за разными NAT-ами или будут использованы брандмауэры, которые настроены на запрет входящих соединений.
Для выполнения настройки базы данных необходимо выполнить POST-запрос:
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_name>:<ia_password> http://localhost:8087/<ia_name>/bucket_server
В данном примере:
- cs_db ‑ имя базы данных сервера взаимодействия,
- db_user ‑ имя пользователя, от имени которого сервер взаимодействия подключается к СУБД.
- db_user_pwd ‑ пароль этого пользователя.
- ia_name ‑ имя администратора ICE-сервера.
- ia_password ‑ пароль администратора ICE-сервера.
У нас команда будет выглядеть так:
curl -Sf -X POST -H "Content-Type: application/json" -d "{ \"url\" : \"jdbc:postgresql://localhost:5432/cs_db\", \"username\" : \"db_user\", \"password\" : \"********\", \"enabled\" : true }" -u admin:admin http://localhost:8087/admin/bucket_server
{«id»:»1912d8d7-fc2c-4c5e-a7a6-44386980e45f»,»url»:»jdbc:postgresql://localhost:5432/cs_db»,»username»:»db_user»,»password»:»»,»lastUsedAt»:null,»enabled»:true,»deleted»:false}
Проверим
Настройка 1С:Сервера взаимодействия :: Методическая поддержка для разработчиков и администраторов 1С:Предприятия 8
#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}
Проверим порты
#netstat -tpln
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:9700 0.0.0.0:* LISTEN 3055/launcher
tcp 0 0 0.0.0.0:9701 0.0.0.0:* LISTEN 3055/launcher
tcp 0 0 0.0.0.0:5701 0.0.0.0:* LISTEN 2891/launcher
tcp 0 0 127.0.0.1:9200 0.0.0.0:* LISTEN 2988/launcher
tcp 0 0 127.0.0.1:9300 0.0.0.0:* LISTEN 2988/launcher
tcp 0 0 192.168.**.**:8181 0.0.0.0:* LISTEN 3055/launcher
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1188/sshd
tcp 0 0 127.0.0.1:8087 0.0.0.0:* LISTEN 3055/launcher
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 1198/postmaster
tcp 0 0 0.0.0.0:8443 0.0.0.0:* LISTEN 3055/launcher
tcp6 0 0 :::22 :::* LISTEN 1188/sshd
tcp6 0 0 :::5432 :::* LISTEN 1198/postmaster
Получить настройки конкретного экземпляра сервера взаимодействия (включая параметры подключения) можно с помощью команды:
#ring cs --instance cs_instance websocket list-params