• Post category:Установка
  • Запись изменена:05.05.2025

Содержание

1. Останавливаем сервер документов на обоих серверах и создаем пользователя на сервере с КС2019

Для остановки сессий с документами выполняем скрипт на обоих серверах внутри контейнера командами:

docker exec r7 bash /usr/bin/documentserver-prepare4shutdown.sh

Проверяем, что файлы не открываются на редактирование.

Создаем пользователя для миграции и добавляем его в группу docker:

useradd -u 1999 -G docker cddisk

2. Работы для интеграции на Корпоративном сервере 2019

2.1. Создайте пользователя в БД r7-office с правами Select

2.1.1. Войдите в контейнер КС2019:

docker exec -it r7 bash

2.1.2. Подключитесь к MySQL:

mysql -u root -p

Узнаём пароль от root MySQL командой:

grep -oP 'Password=\K[^;]+' /var/www/r7-office/WebStudio/web.connections.config

2.1.3. Создайте пользователя cddisk с правами SELECT:

CREATE USER 'cddisk'@'ip_CS24' IDENTIFIED WITH mysql_native_password BY 'StrongSecurityPassword';
GRANT SELECT ON `r7-office`.* TO 'cddisk'@'192.168.24.22';
FLUSH PRIVILEGES;
\q

Где,

  • ip_CS24 — ip сервера КС24;
  • StrongSecurityPassword — пароль пользователя cddisk;
  • cddisk — пользователь, с доступом к БД;
  • r7-office — имя базы данных.

2.1.4. Выйдите из контейнера:

exit

2.2. Предоставление доступа к файлам

2.2.1. Установите nfs сервер:

# .deb
apt install nfs-kernel-server -y
# .rpm
yum install nfs-utils nfs4-acl-tools
# ALT Linux
apt-get install nfs-server

2.2.2. Запустите службу nfs:

systemctl start nfs-server
systemctl enable nfs-server

2.2.3. Откройте файл /etc/exports

sudo nano /etc/exports

2.2.4. Добавьте строку в файл /etc/exports:

/mnt/r7/app/r7-office/www/r7-office/Data/Products/Files/ ip_cs24/32(rw,nohide,all_squash,anonuid=115,anongid=123,no_subtree_check)

Где,

  • /var/www/r7-office/Data/Products/Files — путь до каталога с файлами пользователей, где следующим является каталог «00»;
  • ip_cs24/32 — ip адрес сервера с КС24;
  • anonuid=115 — uid пользователя cddisk на сервере с Корпоративным сервером 2024;
  • anongid=122 — gid группы cddisk на сервере с Корпоративным сервером 2024.

Посмотреть uid и gid возможно командой

id cddisk

2.2.5. Примените изменения:

exportfs -ra

3. Работы для интеграции на Корпоративном сервере 2024

3.1. Проверка доступ к БД КС2019 и NFS

telnet ip_CS19 3306
telnet ip_CS19 2049

Где,

  • ip_CS19 — ip сервера Корпоративный сервер 2019;
  • 3306 — порт для MySQL;
  • 2049 — порт NFS.

3.2. Доступ к файлам

3.2.1. Установите клиент nfs:

# для deb
sudo apt-get install nfs-common
# для yum
sudo yum install nfs-utils
# ALT Linux
sudo apt-get install nfs-utils

3.2.2. Создайте каталог и добавьте запись в /etc/fstab:

Эта команда создаст папку на вашем сервере, в которую будут монтироваться файлы с сервера «Корпоративный сервер 2019»

mkdir /mnt/cs19

Эта строка в файле fstab указывает, как подключить сетевую папку («шару») к вашей системе, чтобы она автоматически монтировалась при загрузке сервера

ip_CS19:/mnt/r7/app/r7-office/www/r7-office/Data/Products/Files/ /mnt/cs19 nfs defaults 0 2

Где,

  • ip_CS19 — ip сервера с Корпоративным сервером 2019;
  • /mnt/r7/app/r7-office/www/r7-office/Data/Products/Files/ — имя каталога, который сделали сетевым;
  • /mnt/cs19 — куда монтируется.

Замените StrongSecurityPassword на ваш реальный пароль

3.2.3 Чтобы примонтировать сетевой каталог указанный на этапе 3.2.3 без перезагрузки сервера, выполните команды:

systemctl daemon-reload
mount -a

3.3. Проверьте наличие кода в Processing

3.3.1. /opt/r7-office/Processing/services.json

Проверить наличие кода (начиная со второй релизной версии, уже имеется, но может иметь другой вид).

{
"name": "CS.UserImport",
"handlers": [
{
"name": "ImportReadStatusEmailMessageHandler",
"type": "ImportReadStatusEmailMessageHandler",
"subscriptionEndpoint": "Import.Read.Status.Email",
"useExchange": true,
"degreeOfParallelism": 1
},
{
"name": "ExportDataFromCsMessageHandler",
"type": "ExportDataFromCsMessageHandler",
"subscriptionEndpoint": "Export.Data.From.Cs",
"folder": "/mnt/cs19",
"customer": 1,
"useExchange": true,
"degreeOfParallelism": 20
},
{
"name": "ImportDataWithFilesFromCsToCdHandler",
"type": "ImportDataWithFilesFromCsToCdHandler",
"subscriptionEndpoint": "Import.User.From.Cs",
"useExchange": true,
"degreeOfParallelism": 4
}
]
},

где,

  • «folder»: «/mnt/cs19» — путь к примонтированному каталогу от Корпоративного сервера 2019.

3.3.2. /opt/r7-office/Processing/appsettings.json

Найдите секцию ConnectionStrings:

"ConnectionStrings": {
"R7StorageServerUserActions": "Database=cddisk;Username=cddisk;Password=I85q8xvzzyZp;Host=localhost;Port=5432;",
"R7StorageServer": "Database=cddisk;Username=cddisk;Password=I85q8xvzzyZp;Host=localhost;Port=5432;",
"CommunityRepository": "Server=10.10.2.4;UserID=cddisk;Database=r7-office;Password=i1ONnPrnXi6pPDShkp",
"Payments": "Database=Payments;Username=cddisk;Password=I85q8xvzzyZp;Host=localhost;Port=5432;",
"GeoNames": "Database=GeoNames;Username=cddisk;Password=I85q8xvzzyZp;Host=localhost;Port=5432;"
},

Изменив значения в строке CommunityRepository:

# Данные для подключения к MySQL Корпоративного сервера 2019
"CommunityRepository": "Server=ip_CS19;UserID=cddisk;Password=StrongSecurityPassword;Database=r7-office;SslMode=none"

Где,

  • ip_CS19 — ip Корпоративного сервера 2019;
  • cddisk — пользователя с доступом к БД Select;
  • StrongSecurityPassword — пароль пользователя;
  • r7-office — база данных Корпоративного сервера 2019.

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

supervisorctl restart all

3.4. Запустите экспорт на КС2024

Откройте страницу вида после авторизации под пользователем r7_admin

https://disk.example.ru/api/v1/ExportFromCs/Start

Где,

  • disk.example.ru — URL вашего модуля Р7-Диск.

4. Работы после экспорта

4.1. Проверьте авторизацию на портале

Например, https://admin.example.ru

Где,

  • admin.example.ru – URL вашего модуля Р7-Админ.

4.2. Проверьте работу документов в модуле Р7-Диск

Например, https://disk.example.ru

Где,

  • disk.example.ru – URL вашего модуля Р7-Диск.

4.3. Проверьте Р7-календарь

Например, https://calendar.example.ru

Где,

  • calendar.example.ru – URL вашего модуля Р7-Календарь.

5. Отключаем возможность повторной миграции

5.1. Удаляем пользователя с БД MySQL на сервере КС-2019, либо на вынесенной отдельно БД MySQL Master

5.1.1. Войдите в консоль MySQL как пользователь root:

docker exec -it r7 bash
mysql -u root -p

5.1.2. Удалите пользователя в БД r7-office с правами Select

DROP USER 'cddisk'@'ip_CS24';

Где,

  • ip_CS24 — ip сервера КС24;

5.2. Отключаем экспорт через nfs на сервере КС-2019

5.2.1. Удалите строки в файле exports

Откройте файл exports

nano /etc/exports

Затем удалите строку ранее прописанную в файле exports

/mnt/r7/app/r7-office/www/r7-office/Data/Products/Files/ ip_cs24/32(rw,nohide,all_squash,anonuid=115,anongid=123,no_subtree_check)

Где,

  • /var/www/r7-office/Data/Products/Files — путь до каталога с файлами пользователей, где следующим является каталог «00»;
  • ip_cs24/32ip адрес сервера с КС24;
  • anonuid=115uid пользователя cddisk на сервере с Корпоративным сервером 2024;
  • anongid=122gid группы cddisk на сервере с Корпоративным сервером 2024.

Либо удалите полностью файл, если никакой иной экспорт на сервере не производится средствами nfs

sudo rm /etc/exports

5.2.2. Отключаем службу nfs-server на сервере КС-2019

Отключите службу

systemctl stop nfs-server
systemctl disable nfs-server

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

Для остановки сессий с документами выполняем скрипт на обоих серверах внутри контейнера командами:

docker exec r7 bash -c "supervisorctl restart all"

5.3. Работы на стороне сервера КС24

5.3.1. Размонтируйте сетевой диск

sudo nano /etc/fstab

удалите строку:

ip_CS19:/var/www/r7-office/Data/Products/Files /mnt/cs19 nfs defaults 0 2

Размонтируйте сетевой диск

umount -l -f /mnt/cs19

 

Была ли полезна статья?
Позвольте нам стать лучше