УСТАНОВКА СЕРВЕРА ВЗАИМОДЕЙСТВИЯ 1С НА UBUNTU SERVER 20.04
- Опубликовано Илья Низамов
- Разделы Blog
- Дата 05.12.2020
- Комментарии 6 комментариев
Привет программисты 1С. Сегодня мы установим сервер взаимодействия 1С на ubuntu server 20.04. Для начала вам необходимо скачать с ИТС все дистрибьютивы для deb систем. Устанавливать будем сервер взаимодействия 1С версии 8.0.15. Платформа 1С будет использоваться 8.3.17.
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
6 Комментариев
Илья, добрый день, подскажите. А как теперь дополнить этот сервер и подцепить функцию работы с внешними пользователями?
Не знаю
Жаль. Спасибо.
Илья, вопрос, и разве работает?
Копипасты в сети уже давно.
Можно тогда объяснить по командам конкретно строки:
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
При этом Вы команды вводите не от супер пользователя???
Пожалуйста опишите значение каждого параметра и для сего начиная с: jdbc и далее.
При этом не ссылаясь на скудное описание 1С.
Версия CS 22.
-При этом Вы команды вводите не от супер пользователя???-
А команда sudo в начале строки, что означает?))
И, Да, можно просто зайти в каталог /opt/1C/1CE/x86_64/ring/ и вводит команды из нее, синтаксис будет проще, ошибок меньше.
Используя данный мануал я установил, настроил и запустил сервер Взаимодействия версии 22.0.27
И почему используете полную команду. Разве не проще сразу из переменных сред команду брать.
Друзья, если, автор не ответ на сообщение это копипаст. Не работает это штука уже, а описание 1С давно поросло мхом.
HELP от 1С это ЭЛО для ума.