Содержание
На схеме отображена архитектура с установленной версией Корпоративный сервер 2024.
Далее описана инструкция по обновлению этой архитектуры до актуальной версии Корпоративный сервер 2024.
Перед обновлением обязательно прочитайте инструкцию до конца.
Обновление НЕ изменит файлы конфигурации.
Но предварительно настоятельно рекомендуем создать снэпшоты и бэкапы обновляемых сервисов и базы данных! После обновления каждой ноды кластера рекомендуется выполнить перезапуск обновляемого сервера.
Для проверки текущей версии перейдите по URL:
https://cddisk.ваш-домен/version
Где:
cddisk
— адрес Р7-Диск;ваш-домен
— используемый домен для работы портала.
Скачать дистрибутив и патч обновления возможно по ссылке: Скачать «Р7-Офис. Корпоративный сервер».
1. Обновление одиночных модулей бэкенда
1.1. Обновление сервиса Api и обновление базы данных
Обновление базы данных достаточно выполнить только на одном сервере c Api.
Подключитесь к каждому из серверов с вынесенным сервисом Api и Sso.Api.
Скачайте на серверы любым удобным способом дистрибутив и файл с патчем обновления.
cd /mnt wget https://download.r7-office.ru/disk/update/Patch_<версия>.zip
Распакуйте скрипт обновления из архива с обновлением в эту же папку
unzip Patch_<версия>.zip Patch/update.sh -d /mnt
Запустите скрипт обновления с параметром -s и названием обновляемого сервиса.
Так как в нашем случае два сервиса Api и Sso.Api находятся на одном сервере, команду выполнить нужно два раза с разными параметрами.
bash Patch/update.sh -s api Patch_<версия>.zip bash Patch/update.sh -s sso Patch_<версия>.zip
Где,
update.sh
— скрипт обновления-s
— ключ для обновления бэкендаPatch_<версия>.zip
— полный путь до скачанного на ВМ патча для обновления Api и Sso.Api
В процессе установки на вопрос об обновлении базы данных необходимо ответить — «ДА», только на одном сервере и только один раз с сервисом Api, на втором сервере и последующих этого делать не нужно.
Настройки подключения в базе данных будут взяты из файла конфигурации appsetings.json. В нашем случае произойдет подключение через Haproxy к лидирующей ноде PostgreSQL и будет проведено обновление.
Во время обновления будет происходить обновление базы данных с помощью SQL скриптов до актуальной, для версии патча.
1.1.1 Обновление одной лишь базы данных, без обновления сервисов.
Если вам нужно обновить только базу данных, без обновления сервисов Корпоративного сервера, тогда на одном сервере с сервисом Api выполните эту команду, иначе пропустите этот пункт:
bash Patch/update.sh -d Patch_<версия>.zip
Где,
update.sh
— скрипт обновления-d
— ключ для обновления Базы ДанныхPatch_<версия>.zip
— полный путь до скачанного на ВМ обновления КС24
1.2 Обновление сервиса Processing
Подключитесь к каждому из серверов с вынесенным сервисом Processing.
Скачайте на серверы любым удобным способом файл с патчем обновления.
cd /mnt wget https://download.r7-office.ru/disk/update/Patch_<версия>.zip
Распакуйте скрипт обновления из архива с обновлением в эту же папку
unzip Patch_<версия>.zip Patch/update.sh -d /mnt
Запустите скрипт обновления с параметром -s и названием обновляемого сервиса
bash Patch/update.sh -s processing Patch_<версия>.zip
Где,
update.sh
— скрипт обновления-s
— ключ для обновления бэкендаPatch_<версия>.zip
— полный путь до скачанного на ВМ патча для обновления Processing
1.3 Обновление сервиса FileStorage/Registry
Подключитесь к каждому из серверов с вынесенным сервисом FileStorage/Registry.
Скачайте на серверы любым удобным способом файл с обновлением.
cd /mnt wget https://download.r7-office.ru/disk/update/Patch_<версия>.zip
Распакуйте скрипт обновления из архива с обновлением в эту же папку
unzip Patch_<версия>.zip Patch/update.sh -d /mnt
Запустите скрипт обновления с параметром -s и названием обновляемого сервиса
Так как в нашем случае два сервиса FileStorage и Registry находятся на одном сервере, команду выполнить нужно два раза с разными параметрами.
bash Patch/update.sh -s fs Patch_<версия>.zip bash Patch/update.sh -s sr Patch_<версия>.zip
Где,
update.sh
— скрипт обновления-s
— ключ для обновления бэкендаPatch_<версия>.zip
— полный путь до скачанного на ВМ патча для обновления FileStorage/Registry
1.4 Обновление сервиса SearchApi
Подключитесь к каждому из серверов с вынесенным сервисом SearchApi.
Скачайте на серверы любым удобным способом файл с обновлением.
cd /mnt wget https://download.r7-office.ru/disk/update/Patch_<версия>.zip
Распакуйте скрипт обновления из архива с обновлением в эту же папку
unzip Patch_<версия>.zip Patch/update.sh -d /mnt
Запустите скрипт обновления с параметром -s и названием обновляемого сервиса
bash Patch/update.sh -s search Patch_<версия>.zip
Где,
update.sh
— скрипт обновления-s
— ключ для обновления бэкендаPatch_<версия>.zip
— полный путь до скачанного на ВМ патча для обновления SearchApi
2. Полное обновление веб модулей
Во время обновления веба (то, что отображается в браузере, фронтенд) будет происходить замена старых файлов, на новые.
Данный вариант обновит весь веб доступный из файла с обновлением, если конфигурационные файлы и статика сайтов есть на обновляемой ВМ.
Во время обновления будет происходить обновление статичных файлов веба из патча (cddisk
, cdmail
, admin
, contacts
, calendar
, projects
).
Для обновления согласно нашей архитектуре, необходимо:
1. Подключиться к серверу с балансировщиком NGINX;
2. Скачать на серверы любым удобным способом файл с патчем обновления;
cd /mnt wget https://download.r7-office.ru/disk/update/Patch_<версия>.zip
3. Из архива патча распаковать скрипт update.sh
и разместить его в одной директории с архивом патча;
unzip Patch_<версия>.zip Patch/update.sh -d /mnt
4. Отредактировать файл update.sh
закомментировав строчку с обновлением dotnet
в функции check_installed
:
5. Выполнить команду обновления статики:
bash Patch/update.sh -f Patch_<версия>.zip systemctl restart nginx
Где:
update.sh
— скрипт обновления;-f
— ключ для запуска возможного полного обновления веб;Patch_<версия>.zip
— полный путь до скачанного на ВМ патча Корпоративного сервера 2024.
3. Одиночное обновление веб модулей
Во время обновления веба (то, что отображается в браузере, фронтенд) будет происходить замена старых файлов, на новые.
3.1. admin
Пример выполнения обновления:
bash update.sh -w admin Patch_<версия>.zip
Где:
update.sh
— скрипт обновления;-w
— ключ для обновления веба;Patch_<версия>.zip
— полный путь до скачанного на ВМ обновлённого веб Р7-Админ.
3.2. cddisk
Пример выполнения обновления:
bash update.sh -w cddisk Patch_<версия>.zip
Где:
update.sh
— скрипт обновления;-w
— ключ для обновления веба;Patch_<версия>.zip
— полный путь до скачанного на ВМ обновлённого веб Р7-Диск.
3.3. calendar
Пример выполнения обновления:
bash update.sh -w calendar Patch_<версия>.zip
Где:
update.sh
— скрипт обновления;-w
— ключ для обновления веба;Patch_<версия>.zip
— полный путь до скачанного на ВМ обновлённого веб Р7-Календарь.
3.4. cdmail
Пример выполнения обновления:
bash update.sh -w cdmail Patch_<версия>.zip
Где:
update.sh
— скрипт обновления;-w
— ключ для обновления веба;Patch_<версия>.zip
— полный путь до скачанного на ВМ обновлённого веб Р7-Почта.
3.5. contacts
Пример выполнения обновления:
bash update.sh -w contacts Patch_<версия>.zip
Где:
update.sh
— скрипт обновления;-w
— ключ для обновления веба;Patch_<версия>.zip
— полный путь до скачанного на ВМ обновлённого веб Р7-Контакты.
3.6. projects
Пример выполнения обновления:
bash update.sh -w projects Patch_<версия>.zip
Где:
update.sh
— скрипт обновления;-w
— ключ для обновления веба;Patch_<версия>.zip
— полный путь до скачанного на ВМ обновлённого веб Р7-Проекты.
4. Перечень вопросов во время инсталляции
4.1. Обновлять Базу данных?
4.1.1. Ответить Нет
Не будет запущен процесс обновления БД.
Актуально, если обновление БД не требуется, и она уже обновлена до версии этого патча.
4.1.2. Ответить Да
Будет обновлена БД бэкенда до актуального состояния.
4.2. Обновлять веб?
4.2.1. Ответить Да
Будет запущен процесс обновления веба.
4.2.2. Ответить Нет
Обновление веба будет пропущено.
Актуально, если ваш веб-сервер находится на отдельной виртуальной машине.
5. Команды проверки версии dotnet
Команда для Astra Linux:
apt-cache depends cddisk |grep dotnet
Команда для РЕД ОС:
rpm -qR cddisk |grep dotnet
Команда для Альт Linux:
rpm -qR cddisk |grep dotnet
6. Логирование скрипта
Лог выводится в консоль в реальном времени, также дублируется в системный лог в файл каталога /var/log/log-date+time-update.sh.log
.
Известные проблемы после обновления
- Если после обновления на портале у пользователей пропали аватары (изображения профилей), то выполните следующее обновление в базе данных:
sudo -i -u postgres psql cddisk update public."Users" set "PhotoId"=(SELECT "AvatarId" FROM public."ChatAvatarRelations" r where r."EntityId"=public."Users"."Id" and r."Type"=1 order by r."Id" desc limit 1) where "PhotoId" IS NULL; \q
- При обновлении на 2025.1.18.15276 не будут доступны модули Р7-Страницы и Р7-Формы