Содержание
На картинке выше представлена архитектура с установленной версией Корпоративный сервер 2024 (4400).
Далее описана инструкция по обновлению этой архитектуры до версии Корпоративный сервер 2024 (14752).
Перед обновлением обязательно прочитайте инструкцию до конца.
1. Обновление одиночных модулей бэкенда
Обновление не изменит файлы конфигурации! Но предварительно настоятельно рекомендуем создать снэпшоты и бэкапы обновляемых сервисов и базы данных!
1.1.1. Обновление сервиса Api и обновление базы данных (обновление базы данных достаточно выполнить только на одном сервере c Api)
Подключитесь к каждому из серверов с вынесенным сервисом Api и Sso.Api.
Если установлен dotnet 3, удалите его, обновление установит dotnet 6 необходимый для работы.
команды для удаление dotnet 3.1 по порядку для ОС Astra Linux, Red OS, Alt Linux
apt remove dotnet-sdk-3.1 dnf remove dotnet-sdk-3.1 apt-get remove dotnet-sdk-3.1
Скачайте на серверы любым удобным способом файл с патчем обновления.
cd /mnt wget https://download.r7-office.ru/disk/update/Patch_2.0.2024.14752.zip
Распакуйте скрипт обновления из архива с обновлением в эту же папку
unzip Patch_2.0.2024.14752.zip Patch/update.sh -d /mnt
Запустите скрипт обновления с параметром -s и названием обновляемого сервиса.
Так как в нашем случае два сервиса Api и Sso.Api находятся на одном сервере, команду выполнить нужно два раза с разными параметрами.
bash Patch/update.sh -s api Patch_2.0.2024.14752.zip bash Patch/update.sh -s sso Patch_2.0.2024.14752.zip
Где,
- update.sh — скрипт обновления
- -s — ключ для обновления бэкенда
- Patch_2.0.2024.14752.zip — полный путь до скачанного на ВМ патча для обновления Api и Sso.Api
В процессе установки на вопрос об обновлении базы данных необходимо ответить — «ДА» ТОЛЬКО НА ОДНОМ СЕРВЕРЕ И ТОЛЬКО ОДИН РАЗ с сервисом Api, на втором сервере и последующих этого делать НЕ НУЖНО.
Настройки подключения в базе данных будут взяты из файла конфигурации appsetings.json. В нашем случае произойдет подключение через Haproxy к лидирующей ноде PostgreSQL и будет проведено обновление.
Во время обновления будет происходить обновление базы данных с помощью SQL скриптов до актуальной, для версии патча.
1.1.2. Обновление одной лишь базы данных, без обновления сервисов.
Если вам нужно обновить только базу данных, без обновления сервисов Корпоративного сервера, тогда на одном сервере с сервисом Api выполните эту команду, иначе пропустите этот пункт:
bash Patch/update.sh -d Patch_2.0.2024.14752.zip
Где,
- update.sh — скрипт обновления
- -d — ключ для обновления Базы Данных
- Patch_2.0.2024.14752.zip — полный путь до скачанного на ВМ обновления КС24
1.2. Обновление сервиса Processing
Подключитесь к каждому из серверов с вынесенным сервисом Processing.
Если установлен dotnet 3, удалите его, обновление установит dotnet 6 необходимый для работы.
команды для удаление dotnet 3.1 по порядку для ОС Astra Linux, Red OS, Alt Linux
apt remove dotnet-sdk-3.1 dnf remove dotnet-sdk-3.1 apt-get remove dotnet-sdk-3.1
Скачайте на серверы любым удобным способом файл с патчем обновления.
cd /mnt wget https://download.r7-office.ru/disk/update/Patch_2.0.2024.14752.zip
Распакуйте скрипт обновления из архива с обновлением в эту же папку
unzip Patch_2.0.2024.14752.zip Patch/update.sh -d /mnt
Запустите скрипт обновления с параметром -s и названием обновляемого сервиса
bash Patch/update.sh -s processing Patch_2.0.2024.14752.zip
Где,
- update.sh — скрипт обновления
- -s — ключ для обновления бэкенда
- Patch_2.0.2024.14752.zip — полный путь до скачанного на ВМ патча для обновления Processing
1.3. Обновление сервиса FileStorage/Registry
Подключитесь к каждому из серверов с вынесенным сервисом FileStorage/Registry.
Если установлен dotnet 3, удалите его, обновление установит dotnet 6 необходимое для работы.
команды для удаление dotnet 3.1 по порядку для ОС Astra Linux, Red OS, Alt Linux
apt remove dotnet-sdk-3.1 dnf remove dotnet-sdk-3.1 apt-get remove dotnet-sdk-3.1
Скачайте на серверы любым удобным способом файл с обновлением.
cd /mnt wget https://download.r7-office.ru/disk/update/Patch_2.0.2024.14752.zip
Распакуйте скрипт обновления из архива с обновлением в эту же папку
unzip Patch_2.0.2024.14752.zip Patch/update.sh -d /mnt
Запустите скрипт обновления с параметром -s и названием обновляемого сервиса
Так как в нашем случае два сервиса FileStorage и Registry находятся на одном сервере, команду выполнить нужно два раза с разными параметрами.
bash Patch/update.sh -s fs Patch_2.0.2024.14752.zip bash Patch/update.sh -s sr Patch_2.0.2024.14752.zip
Где,
- update.sh — скрипт обновления
- -s — ключ для обновления бэкенда
- Patch_2.0.2024.14752.zip — полный путь до скачанного на ВМ патча для обновления FileStorage/Registry
1.4. Обновление сервиса SearchApi
Подключитесь к каждому из серверов с вынесенным сервисом SearchApi.
Если установлен dotnet 3, удалите его, обновление установит dotnet 6 необходимое для работы.
команды для удаление dotnet 3.1 по порядку для ОС Astra Linux, Red OS, Alt Linux
apt remove dotnet-sdk-3.1 dnf remove dotnet-sdk-3.1 apt-get remove dotnet-sdk-3.1
Скачайте на серверы любым удобным способом файл с обновлением.
cd /mnt wget https://download.r7-office.ru/disk/update/Patch_2.0.2024.14752.zip
Распакуйте скрипт обновления из архива с обновлением в эту же папку
unzip Patch_2.0.2024.14752.zip Patch/update.sh -d /mnt
Запустите скрипт обновления с параметром -s и названием обновляемого сервиса
bash Patch/update.sh -s search Patch_2.0.2024.14752.zip
Где,
- update.sh — скрипт обновления
- -s — ключ для обновления бэкенда
- Patch_2.0.2024.14752.zip — полный путь до скачанного на ВМ патча для обновления SearchApi
2. Полное обновление веб модулей
Во время обновления веба (то, что отображается в браузере) будет происходить замена старых файлов, на новые.
Данный вариант обновит весь доступный из файла с обновлением веб, если конфигурационные файлы и статика сайтов есть на ВМ обновляемой.
Во время обновления будет происходить:
- Обновление статичных файлов веба из патча (cddisk, cdmail, admin, contacts, calendar, projects).
Для обновления согласно нашей архитектуре, необходимо подключиться к серверу с балансировщиком NGINX.
Скачайте на серверы любым удобным способом файл с патчем обновления.
cd /mnt wget https://download.r7-office.ru/disk/update/Patch_2.0.2024.14752.zip
Распакуйте скрипт обновления из архива с обновлением в эту же папку
unzip Patch_2.0.2024.14752.zip Patch/update.sh -d /mnt
Отредактируйте файл update.sh закомментировав строчку с обновлением dotnet в функции «check_installed»
Выполните команду обновления статики.
bash Patch/update.sh -f Patch_2.0.2024.14752.zip systemctl restart nginx
Где,
- update.sh — скрипт обновления;
- -f — ключ для запуска возможного полного обновления веб;
- Patch_2.0.2024.14752.zip — полный путь до скачанного на ВМ патча КС24.
3. Одиночное обновление веб модулей
Во время обновления веб (то, что отображается в браузере) будет происходить замена старых файлов, на новые.
3.1. admin
Пример выполнения обновления:
bash update.sh -w admin Patch_2.0.2024.14752.zip
Где,
- update.sh — скрипт обновления
- -w — ключ для обновления веб
- Patch_2.0.2024.14752.zip — полный путь до скачанного на ВМ обновлённого веб Р7-Админ
3.2. cddisk
Пример выполнения обновления:
bash update.sh -w cddisk Patch_2.0.2024.14752.zip
Где,
- update.sh — скрипт обновления
- -w — ключ для обновления веб
- Patch_2.0.2024.14752.zip — полный путь до скачанного на ВМ обновлённого веб Р7-Диск
3.3. calendar
Пример выполнения обновления:
bash update.sh -w calendar Patch_2.0.2024.14752.zip
Где,
- update.sh — скрипт обновления
- -w — ключ для обновления веб
- Patch_2.0.2024.14752.zip — полный путь до скачанного на ВМ обновлённого веб Р7-Календарь
3.4. cdmail
Пример выполнения обновления:
bash update.sh -w cdmail Patch_2.0.2024.14752.zip
Где,
- update.sh — скрипт обновления
- -w — ключ для обновления веб
- Patch_2.0.2024.14752.zip — полный путь до скачанного на ВМ обновлённого веб Р7-Почта
3.5. contacts
Пример выполнения обновления:
bash update.sh -w contacts Patch_2.0.2024.14752.zip
Где,
- update.sh — скрипт обновления
- -w — ключ для обновления веб
- Patch_2.0.2024.14752.zip — полный путь до скачанного на ВМ обновлённого веб Р7-Контакты
3.6. projects
Пример выполнения обновления:
bash update.sh -w projects Patch_2.0.2024.14752.zip
Где,
- update.sh — скрипт обновления
- -w — ключ для обновления веб
- Patch_2.0.2024.14752.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
Команда для Red OS
rpm -qR cddisk |grep dotnet
Команда для Alt 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