Дисклеймер о текущих ограничениях и известных ошибках
Настоящий документ содержит информацию о текущих ограничениях и известных ошибках, обнаруженных при использовании инструмента миграции данных из Корпоративного сервера 2019 (далее - КС2019) в Корпоративный сервер 2024 (далее – КС2024). Мы стремимся обеспечить высокий уровень качества нашего продукта, однако на данный момент выявлены следующие проблемы, которые могут повлиять на функционирование и предупреждаем о возможных рисках его использования:
1. Интерфейс и настройки доступа:
В интерфейсе настроек доступа в КС2024 не отображаются права пользователей на документы, наследуемые от прав папок: Некоторые права пользователей могут не отображаться в интерфейсе КС2024, что может вводить в заблуждение при работе с делегированием прав на документы. При просмотре прав на документ отображаются только права выданные непосредственно на документ, права наследованные от папок не отображаются.
2. Права администратора:
Не мигрирует встроенная УЗ Администратора КС2019: Возможно отсутствие доступа к важному функционалу для отдельных групп пользователей.
Не мигрируют права администратора, выданные пользователю портала: Права администратора, выданные пользователям для работы с модулями портала, не переносятся в КС2024. Возможно отсутствие доступа к важному функционалу для отдельных групп пользователей.
3. Документы и папки:
Не мигрируют права на документы, добавленные в папку Общие с правами на Чтение: Возможна потеря доступа к отдельным документам.
4. Атрибуты пользователей:
Некорректно мигрируют даты создания пользователей: Даты создания учетных записей могут быть неправильно перенесены, что может искажать некоторую личную информацию пользователей.
Не мигрируют руководители пользователей: Информация о руководителях пользователей может быть потеряна. Необходимо ручное восстановление атрибутов пользователей.
Не мигрируют должности пользователей: Информация о должностях пользователей может быть потеряна. Необходимо ручное восстановление атрибутов пользователей.
Некорректно мигрирует телефонный код: Телефонные коды могут быть неправильно перенесены. Необходимо ручное восстановление атрибутов пользователей.
5. Проблемы доступа к информации:
При миграции УЗ с правами Гость получает права на редактирование к некоторым документам: Учетные записи с правами только на чтение могут получать непредусмотренные права на редактирование к некоторым документам, что может нарушать политику прав доступа к корпоративной информации. Под «некоторыми документами» понимаются документы КС2019 из папки «Общие», полный доступ к которым был выдан группе «Все». Для обхода данной ошибки перед выполнением миграции требуется исключить все УЗ с правами Гость из группы «Все».
Не мигрируют внешние ссылки на документы и папки: Возможно отсутствие доступа к определенным документам для отдельных групп пользователей.
Примечание: Обращаем внимание, что инструмент миграции находится в стадии активной разработки. В связи с этим просим не проводить миграцию без предварительного тестирования на непродуктивном контуре. Мы активно работаем над исправлением указанных ошибок и улучшаем функциональность инструмента миграции. Рекомендуем вам следить за обновлениями и устанавливать последние версии для получения исправлений и улучшений.
Приносим извинения за возможные неудобства и благодарим за ваше понимание и терпение. Для получения дополнительной информации или помощи, пожалуйста, обращайтесь в нашу службу поддержки.
1. Список необходимых пакетов и открытых портов
1.1. На Корпоративный сервер 2024 должны быть:
1. dialog;
2. curl;
3. openssh-client / openssh-clients;
4. perl;
5. nfs-common или nfs-utils (NFS-клиент);
6. RabbitMQ-server (как часть установки Р7 Диска / Корпоративного сервера 2024).
Опционально:
1. sshpass (если использовать SSH по паролю);
2. firewalld или другие firewall-утилиты (ufw / iptables);
3. netcat и/или telnet для диагностики портов.
Если dialog не установлен, скрипт попробует поставить его сам (при наличии доступа в интернет). Без dialog скрипт работать не будет.
5. Интерактивная часть: какие окна и в каком порядке
После запуска скрипт:
5.1. Приветственное окно
Кратко описывает, что он делает:
5.2. Параметры Корпоративный сервер 2019 и SSH
Адрес Корпоративный сервер 2019.
IP или имя хоста сервера Корпоративный сервер 2019 — например 192.168.27.10 или cs2019.r7-office.ru.
SSH-пользователь.
По умолчанию root.
SSH-порт.
По умолчанию 22 (можно любой, который у тебя настроен).
Выбор способа авторизации по SSH:Меню:
SSH по ключу (вставить закрытый ключ для текущей миграции).
Открывается окно с текстом-пояснением, затем editbox, куда нужно целиком вставить приватный ключ:
Строки -----BEGIN ... PRIVATE KEY----- … -----END ... PRIVATE KEY-----
или хотя бы содержимое.
Скрипт сохраняет ключ во временный файл в TMP_DIR, выставляет chmod 600 и использует только на время миграции. После завершения скрипта TMP_DIR удаляется (ключ уходит).
SSH по ключу (указать путь к ключу).
Предлагается ввести путь к существующему ключу, по умолчанию что-то вроде /root/.ssh/id_ed25519.
SSH по логину/паролю (через sshpass).
Спрашивает пароль SSH-пользователя (логин берется из п.2);
Использует sshpass для авторизации (если sshpass нет — попытается установить).
5.3. Настройки MySQL-пользователя для миграции
Скрипт создаёт отдельного read-only пользователя на Корпоративном сервере 2019:
Спрашивает:
Имя пользователя: по умолчанию cddisk;
Пароль для этого пользователя.
Этот пользователь используется на Корпоративный сервер 2024 в строке подключения CommunityRepository.
5.4. Пользователь файлов на Корпоративный сервер 2024
Локальный пользователь Linux на Корпоративный сервер 2024, от имени которого хранятся файлы Р7-Диска
— обычно cddisk.
UID/GID этого пользователя будут подставлены в /etc/exports на Корпоративном сервере 2019 (опции anonuid, anongid).
5.5. Каталог с файлами пользователей (на Корпоративный сервер 2019.
Скрипт задаёт вопрос:
Каталог с файлами пользователей находится в /var/www/r7-office/Data/Products/Files
Оставить этот путь?
Если жмёшь Да — используется путь по умолчанию.
Если жмёшь Нет — открывается окно ввода, куда можно вписать свой путь (например /data/r7disk/files).
Этот путь дальше используется:
В /etc/exports на Корпоративном сервере 2019;
В /etc/fstab на Корпоративном сервер 2024 (строка вида CS2019_HOST:FILES_PATH /mnt/cs nfs ...);
В cleanup — при чистке /etc/exports.
5.6. Домен/URL Р7-Диска на Корпоративный сервер 2024
Доменное имя или IP Р7-Диска на Корпоративный сервер 2024
– например disk4.test150.s7-office.site.
Скрипт старается автоматически подставить это из /etc/nginx/sites-available/cddisk (директива server_name), если файл существует.
5.7. Суперпользователь Р7-Диска
Имя: по умолчанию superadmin;
Пароль: по умолчанию тоже superadmin (если оставить пустым при первом вводе, подставится superadmin).
Эти данные используются для:
Проверки авторизации на https://DISK_HOST/;
Вызова API /api/v1/ExportFromCs/Start.
5.8. Параметры для RabbitMQ
IP-адрес, с которого будешь открывать веб-интерфейс rabbitmq
– обычно IP рабочего места админа. На его основе создаётся vhost в RabbitMQ.
Имя пользователя rabbitmq и пароль:
Создаётся/настраивается пользователь в RabbitMQ;
Ему выдаются права и тег administrator.
5.9. Итоговое окно подтверждения
Сводка всех введённых параметров:
Адреса, пользователи, порты;
Путь с файлами;
Домен диска, superadmin;
Параметры RabbitMQ (IP, логин).
Вопрос: «Продолжить с этими параметрами?».
Если нажать Нет, скрипт вернётся к вводу и позволит всё поменять.
6. Что скрипт делает дальше (последовательность шагов)
После подтверждения параметров начинается «автоматическая часть».
В реальном времени всё сопровождается строчками вида:
==> Описание шага
В консоли и всплывающими окнами при ошибках.
6.1. Блок precheck
Установка sshpass (если выбран SSH по паролю).
При необходимости пытается установить через пакетный менеджер.
Проверка SSH к Корпоративный сервер 2019.
Команда ssh_cs2019 "echo ok";
Если не удаётся подключиться — ошибка и выход.
Определение локального firewall (Корпоративный сервер 2024..
Смотрит, есть ли firewall-cmd, ufw или iptables, задаёт LOCAL_FW_TYPE.
Определение firewall на Корпоративный сервер 2019.
По SSH определяет, что стоит: firewalld, ufw, iptables или ничего.
Проверка наличия mysql на Корпоративный сервер 2019.
Если клиенты MySQL/MariaDB не установлены — скрипт завершится с просьбой установить.
Чтение настроек БД с Корпоративный сервер 2019.
По SSH читает /var/www/r7-office/WebStudio/web.connections.config;
Из connectionString вытаскивает:
Database=... → MYSQL_DB;
User ID=... → MYSQL_ROOT_USER;
Password=... → MYSQL_ROOT_PASS.
Если не получилось — спрашивает БД/логин/пароль MySQL root вручную.
Проверка наличия пользователя файлов на Корпоративный сервер 2024.
Id CSDISK_USER; если нет — ошибка, нужно создать заранее.
Проверка доступности MySQL на Корпоративный сервер 2019 по сети.
Проверяет порт 3306 на CS2019_HOST (через /dev/tcp, nc или telnet).
Показывает окно с текстом, что логин/пароль неверны;
Предлагает ввести новый логин/пароль;
Повторы до 3 раз.
Если другой код или после 3 попыток всё плохо — скрипт завершает работу с описанием ошибки.
6.3. Создание MySQL-пользователя для миграции Корпоративный сервер 2019
Функция create_mysql_user:
По SSH на Корпоративном сервере 2019 выполняется:
CREATE USER IF NOT EXISTS 'MYSQL_USER'@'CS2024_IP'
IDENTIFIED WITH mysql_native_password BY 'MYSQL_PASS';
GRANT SELECT ON `MYSQL_DB`.* TO 'MYSQL_USER'@'CS2024_IP';
FLUSH PRIVILEGES;
Права только на чтение всей БД MYSQL_DB.
6.4. Настройка NFS на Корпоративный сервер 2019
Функция configure_nfs_cs2019:
Берёт uid/gid пользователя CSDISK_USER на Корпоративный сервер 2024.
На Корпоративном сервере 2019 устанавливает NFS-сервер (nfs-kernel-server/nfs-utils и т.п.), включает и запускает службу.