УСТАНОВКА СЕРВЕРА ВЗАИМОДЕЙСТВИЯ 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