Обновление архитектуры Корпоративный сервер 2024 High Availible до актуальной версии

На схеме отображена архитектура с установленной версией Корпоративный сервер 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:

Обновление архитектуры Корпоративный сервер 2024 High Availible до актуальной версии

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-Формы
Была ли полезна статья?
Позвольте нам стать лучше
Дополнительные материалы