УСТАНОВКА СЕРВЕРА ВЗАИМОДЕЙСТВИЯ 1С НА UBUNTU SERVER

УСТАНОВКА СЕРВЕРА ВЗАИМОДЕЙСТВИЯ 1С НА UBUNTU SERVER 20.04

Привет программисты 1С. Сегодня мы установим сервер взаимодействия 1С на ubuntu server 20.04. Для начала вам необходимо скачать с ИТС все дистрибьютивы для deb систем. Устанавливать будем сервер взаимодействия 1С версии 8.0.15. Платформа 1С будет использоваться 8.3.17.

Посмотреть видео по установке сервера взаимодействия 1С на Windows Server 2019 вы можете по ссылке

Подключаемся к серверу unubtu с помощью программы Putty по протоколу SSH.

В консоли работаем под обычным пользователем, не root. Поэтому перед всеми командами вводим sudo .

1. Установка OpenJDK 8

sudo apt update 
sudo apt install openjdk-8-jdk 

java -version

Надо установить JAVA_HOME

sudo nano .bashrc 
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64 
source .bashrc 
echo $JAVA_HOME

2. Установка PostgreSQL 12

sudo apt-get update 
sudo apt-get install postgresql postgresql-contrib

Подключаемся к консоли PostgreSQL

sudo -u postgres psql

Устанавливаем пароль пользователю postgres. Я оставляю стандартный пароль, так как при инициализации базы данных ниже, мне не удалось передать сложный пароль в конфиг.

\password postgres 
postgres

Создаем базу данных, устанавливаем расширение и выходим

CREATE DATABASE cs_db; 
\c cs_db 
CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; 
\q

3. Установка сервер взаимодействия 1С

Скачиваем все пакеты на сервер ubuntu через WinCSP в домашний каталог пользователя.

Запускаем установку deb пакетов.

sudo dpkg -i *.deb

Создаем пользователя, необходимые папки и назначаем права.

sudo useradd cs_user 
sudo mkdir -p /var/cs/cs_instance 
sudo chown cs_user:cs_user /var/cs/cs_instance

С помощью утилиты ring создаем экземпляр сервера взаимодействия

sudo /opt/1C/1CE/x86_64/ring/ring cs instance create --dir /var/cs/cs_instance --owner cs_user 
sudo /opt/1C/1CE/x86_64/ring/ring cs --instance cs_instance service create --username cs_user --java-home $JAVA_HOME --stopped

Если появляется ошибка говорящая о том, что не установлена переменная окружения JAVA_HOME.

Открываем sh скрипт ring и убираем 2 первых if

sudo nano /opt/1C/1CE/x86_64/ring/ring if [ -z "$JAVA_HOME" ]; then 
echo Error: JAVA_HOME environment variable is not set. 
echo Please set the JAVA_HOME environment variable to the location of your Java installation. 
exit 1 
fi 

if [ ! -f "$JAVA_HOME"/bin/java ]; then 
echo Error: $JAVA_HOME/bin/java not found. 
echo Please set the JAVA_HOME environment variable to the location of your Java installation. 
exit 1; 
fi;

Устанавливаем инстанс Hazelcast

sudo useradd hc_user 
sudo mkdir -p /var/cs/hc_instance 
sudo chown hc_user:hc_user /var/cs/hc_instance 
sudo /opt/1C/1CE/x86_64/ring/ring hazelcast instance create --dir /var/cs/hc_instance --owner hc_user 
sudo /opt/1C/1CE/x86_64/ring/ring hazelcast --instance hc_instance service create --username hc_user --java-home $JAVA_HOME --stopped

Устанавливаем инстанс Elasticsearch

sudo useradd elastic_user 
sudo mkdir -p /var/cs/elastic_instance 
sudo chown elastic_user:elastic_user /var/cs/elastic_instance 
sudo /opt/1C/1CE/x86_64/ring/ring elasticsearch instance create --dir /var/cs/elastic_instance --owner elastic_user 
sudo /opt/1C/1CE/x86_64/ring/ring elasticsearch --instance elastic_instance service create --username elastic_user --java-home $JAVA_HOME --stopped

Настройка JDBC

sudo /opt/1C/1CE/x86_64/ring/ring cs --instance cs_instance jdbc set-params --url jdbc:postgresql://localhost:5432/cs_db?currentSchema=public 
sudo /opt/1C/1CE/x86_64/ring/ring cs --instance cs_instance jdbc set-params --username postgres 
sudo /opt/1C/1CE/x86_64/ring/ring cs --instance cs_instance jdbc set-params --password postgres 
sudo /opt/1C/1CE/x86_64/ring/ring cs --instance cs_instance jdbc-privileged set-params --url jdbc:postgresql://localhost:5432/cs_db?currentSchema=public 
sudo /opt/1C/1CE/x86_64/ring/ring cs --instance cs_instance jdbc-privileged set-params --username postgres 
sudo /opt/1C/1CE/x86_64/ring/ring cs --instance cs_instance jdbc-privileged set-params --password postgres

Настройка WebSocket сервера взаимодействия 1С

Порт можете оставить такой же 8087, а ip устанавливайте от вашего сервера, у меня это 10.10.1.67

sudo /opt/1C/1CE/x86_64/ring/ring cs --instance cs_instance websocket set-params --hostname 10.10.1.67 
sudo /opt/1C/1CE/x86_64/ring/ring cs --instance cs_instance websocket set-params --port 8087

Запускаем службы

sudo /opt/1C/1CE/x86_64/ring/ring hazelcast --instance hc_instance service start 
sudo /opt/1C/1CE/x86_64/ring/ring elasticsearch --instance elastic_instance service start 
sudo /opt/1C/1CE/x86_64/ring/ring cs --instance cs_instance service start

Проверяем, что все запустилось

sudo curl http://localhost:8087/rs/health

В ответ придет JSON. Если он примерно такой же, то значит все хорошо.

{"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":[]}}

Если что-то не так, то вот каталоги с логами.

С помощью команды ls вы можете посмотреть содержимое каталога.

С помощью текстового редактора nano посмотреть содержимое.

sudo ls /var/cs/cs_instance/logs/ 
sudo ls /var/cs/hc_instance/logs/ 
sudo ls /var/cs/elastic_instance/logs/ 

sudo nano /var/cs/cs_instance/logs/launcher.log

Инициализируем базу данных

sudo 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

Открываем порт и включаем бредмауэр. Можете пропустить этот блок если безопасность сервера особо не беспокоит. И не забудьте открыть 22 порт, иначе после инициализации вы не сможете повторно подключиться к серверу.

sudo ufw allow 8087 
sudo ufw allow 22 
sudo ufw enable

Базу 1С подключаем по адресу ws://10.10.1.67:8087