Продукты Р7
Корпоративный сервер 2024
Корпоративный сервер 2024
Сервер документов
Сервер документов
Редакторы
Редакторы
Корпоративный сервер 2019
Корпоративный сервер 2019
Графика
Графика
Команда
Команда
Мобильные редакторы
Мобильные редакторы
Облачный офис
Облачный офис
Почта
Почта
Органайзер
Органайзер
Дополнительно
Часто задаваемые вопросы
Разработчикам
Интеграции
Новые возможности

Миграция Корпоративный сервер 2019 (Docker) на Корпоративный сервер 2024 (Astra Linux offline)

Обновлено: 05.05.25

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