• Главная
  • Курсы
  • События
  • Блог
  • Контакты
  • Магазин
    • Загрузки
  • Партнерка
  • Обо мне
Есть вопросы? Звоните:
+7 (917) 449 09 97
admin@nizamov.school
РегистрацияВход
nizamov.school
  • Главная
  • Курсы
  • События
  • Блог
  • Контакты
  • Магазин
    • Загрузки
  • Партнерка
  • Обо мне

1С СЕРВЕР ВЗАИМОДЕЙСТВИЯ

ПЕРЕЕЗД В YANDEX CLOUD
  • Главная
  • Блог
  • Blog
  • 1С СЕРВЕР ВЗАИМОДЕЙСТВИЯ. ПЕРЕЕЗД В YANDEX CLOUD

1С СЕРВЕР ВЗАИМОДЕЙСТВИЯ. ПЕРЕЕЗД В YANDEX CLOUD

  • Опубликовано Илья Низамов
  • Разделы Blog
  • Дата 20.01.2021
  • Комментарии Нет комментариев
1с сервер взаимодействия

Привет программисты 1С. Сегодня я хочу рассказать вам о переезде сервера взаимодействия 1с с windows server на ubuntu в yandex cloud и перенос истории сообщений.

При переносе сервера взаимодействия 1с есть много нюансов, надо учесть версию postgresql, и подключение по ssh с помощью ключей. Короче будет полезно и надеюсь 1с разработают более удобный способ переноса истории сообщений.

ЗАКАЗАТЬ УСЛУГУ НАСТРОЙКИ СЕРВЕРА ВЗАИМОДЕЙСТВИЯ 1С admin@nizamov.studio
+7 (917) 449-09-97

Глоссарий:

  • ВМ – виртуальная машина в облаке yandex cloud
  • СВ – 1с сервер взаимодействия

Создаем виртуальную машину в Yandex.cloud

Переходим в консоль по ссылке.

консоль yandex cloud

Виртуальную машину назовем ubuntucs и логин пользователя установим cs1.

Так же обязательно надо выбрать публичный IP адрес. Если у вас его еще нет, то вам предложат его зарезервировать.

Как видите, тут мы не можем задать пароль пользователя и подключаться к ВМ мы будем с помощью SSH ключей.

У яндекс есть отличная инструкция. Я же просто открою терминал в windows 10, запустив cmd. И выполню команду.

ssh-keygen -t rsa -b 2048

При генерации ssh ключей 3 раза нажмите Enter. В результате выполнения команды, в папке пользователя появится папка с ключами.

Откроем файл id_rsa.pub в текстовом редакторе. И в самом конце изменим имя пользователя на cs1.

Сохраним файл и скопируем все содержимое. Откроем консоль ВМ и вставим наш публичный ключ.

Настройка виртуальной машины

Теперь мы можем подключаться к машине через терминал, запускаем cmd. Публичный IP адрес вы можете скопировать из консоли ВМ.

ssh cs1@130.193.59.95

При первом подключении может выдать сообщение.

The authenticity of host '130.193.59.95 (130.193.59.95)' can't be established.
ECDSA key fingerprint is SHA256:ajljn2USEHenBrlS7QifmoKTOTUeNpEpKO/94K67ZNs.

Вводим yes и получаем доступ к ВМ. В принципе можно работать, но мне бы хотелось подключаться через программу putty и передавать файлы через WinSCP. Чтобы это сделать, надо разрешить доступ по паролю к ssh.

Открываем конфиг сервера ssh в текстовом редакторе.

sudo nano /etc/ssh/sshd_config

Найдите строку PasswordAuthentication и уберите знак # в начале, если он есть. Заместо no напишите yes

Чтобы сохранить ваши изменения в текстовом редакторе nano, нажмите Ctrl+X, затем введите Y и нажмите Enter.

Перезапустите ssh сервер.

sudo systemctl restart ssh

Так же надо задать пароль пользователю cs1. В консоли вводим команду и 2 раза пароль.

sudo passwd cs1

Пробуем подключиться к серверу через putty. Вводим публичный IP адрес, 22 порт, соединение по SSH. Наживаем Open.

При первом подключении выдаст предупреждение. Нажимаем Да и продолжаем.

Вводим имя пользователя и пароль. Если все хорошо, то вы увидите похожее окно.

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

В данном примере я специально развернул сервер взаимодействия на старой версии PostgreSQL 9.5. Чтобы показать, как установить старую версию на новом сервере. А сервер взаимодействия установил под не стандартным пользователем.

Открываем утилиту pgAdmin, и находим нашу базу.

Тут мы видим, что к СВ уже подключена база.

Для того, чтобы без проблем развернуть dump, этой базы на новом сервере, нам надо узнать под каким пользователем функционирует данный сервер.

1С хранит эти данные в открытом виде, так что рекомендую сменить стандартный пароль пользователя postgres и закрыть порт 5432.

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

Создать бекап базы можно разными способами, но самым надежным оказался способ создания dump в командной строке.

В проводнике переходим в папку где установлен PostgreSQL.

C:\Program Files\PostgreSQL\9.5\bin

Вверху окна вводим CMD и командная строка откроется сразу в нашей папке.

В терминале вводим команду

pg_dump -U postgres -W 1ce-cs > C:\Backup\1ce-cs.dump

С помощью утилиты pg_dump, подключаясь к sql серверу под пользователем postgres, мы выгружаем базу данных 1ce-cs в файл 1ce-cs.dump который будет создан в папке C:\Backup\

Получившийся dump скопируйте на основной компьютер любым удобным вам способом.

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

Установка OpenJDK 8

Подключаемся к новому серверу через putty. И вводим команды.

sudo apt update

sudo apt install openjdk-8-jdk

java -version

Теперь установим переменную $JAVA_HOME глобально. Открываем конфиг в текстовом редакторе nano.

sudo nano /etc/environment

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

JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk-amd64"

Применяем настройки и проверяем, что все работает.

source /etc/environment

echo $JAVA_HOME

Установка PostgreSQL нужной версии

В моем случае я буду ставить версию 9.5. Идем в официальный мануал https://www.postgresql.org/download/linux/ubuntu/
и копируем от туда команды.

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

sudo apt-get update

Если хотите установить последнюю версию, то вводите.

sudo apt-get -y install postgresql

А я укажу конкретную версию.

sudo apt-get install postgresql-9.5

Теперь подключимся к консоли PostgreSQL и зададим пароль пользователя postgres.

sudo -u postgres psql

\password postgres
postgres

\q

Все дальнейшие действия я буду выполнять подключившись к postgresql удаленно с помощью pgAdmin. Не делаю это через консоль, так как мне не удалось создать базу в консоли, которая начинается с цифры (привет установщику 1С).

Так как у на старом сервере база работала под пользователем cs с паролем cs-pass, то именно такого пользователя мы создадим на новом сервере.

Через pgAdmin создаем базу 1ce-cs, владельцем назначаем пользователя cs.

С помощью утилиты WinSCP копируем в домашнюю папку пользователя cs1 дистрибьютивы и дамп базы.

Возвращаемся к консоли и восстанавливаем дамп. 

sudo -u postgres psql -W 1ce-cs < /home/cs1/1ce-cs.dump

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

Устанавливаем все пакеты.

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

Настраиваем инстанс 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/1ce-cs?currentSchema=public
sudo /opt/1C/1CE/x86_64/ring/ring cs --instance cs_instance jdbc set-params --username cs
sudo /opt/1C/1CE/x86_64/ring/ring cs --instance cs_instance jdbc set-params --password cs-pass
sudo /opt/1C/1CE/x86_64/ring/ring cs --instance cs_instance jdbc-privileged set-params --url jdbc:postgresql://localhost:5432/1ce-cs?currentSchema=public
sudo /opt/1C/1CE/x86_64/ring/ring cs --instance cs_instance jdbc-privileged set-params --username cs
sudo /opt/1C/1CE/x86_64/ring/ring cs --instance cs_instance jdbc-privileged set-params --password cs-pass

Перед настройкой WebSocket нам надо узнать внутренний IP адрес. Можно посмотреть в консоли ВМ, а можно выполнить команду ifconfig.

Если команда не срабатывает, вы можете ее установить.

sudo apt install net-tools

Берем IP адрес и настраиваем WebSocket.

sudo /opt/1C/1CE/x86_64/ring/ring cs --instance cs_instance websocket set-params --hostname 10.128.0.17
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 -Sf -X POST -H "Content-Type: application/json" -d "{ \"url\" : \"jdbc:postgresql://localhost:5432/1ce-cs\", \"username\" : \"cs\", \"password\" : \"cs-pass\", \"enabled\" : true }" -u admin:admin http://localhost:8087/admin/bucket_server

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

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

Подключаем старую базу по новому адресу ws://130.193.59.95:8087

Настраиваем порты и включаем брандмауэр.

sudo ufw allow 8087
sudo ufw allow 22
sudo ufw enable

Метка:1с сервер взаимодействия

author avatar
Илья Низамов

Предыдущая запись

1С KAFKA. НЕ ПИШИТЕ СВОЙ REST СЕРВИС ДЛЯ КАФКИ НА ПИТОНЕ.
20.01.2021

Следующая запись

1С JAVASCRIPT. ЛИЧНЫЙ КАБИНЕТ КОНТРАГЕНТА НА NUXTJS
24.02.2021

Вам также может понравиться

gigachat
GIGACHAT ИЛИ CHATGPT ИИ МЕНЕДЖЕР ДЛЯ 1С
15 мая, 2024
gigachat ии менеджер
ИИ МЕНЕДЖЕР НА БАЗЕ GIGACHAT
12 февраля, 2024
chatgpt антиспам
ChatGPT Антиспам. Часть 1
5 февраля, 2024

Оставьте ответ Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Поиск

Рубрики

  • Blog

Ссылки

  • Политика конфиденциальности
  • Публичная оферта

Сайт создан в NIZAMOV.studio

Регистрация с помощью:

Войти Vkontakte

Вход через логин и пароль

Забыли пароль?

Нет аккаунта? Регистрируйся прямо сейчас

Register a new account

Are you a member? Login now