Содержание
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/32 — ip адрес сервера с КС24;
- anonuid=115 — uid пользователя cddisk на сервере с Корпоративным сервером 2024;
- anongid=122 — gid группы 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