Обновление версии экземпляра ПО с его остановкой
Введение
Здесь представлены инструкции по обновлению версии экземпляра ПО Comindware Platform на одном и том же сервере с остановкой экземпляра.
Инструкции даны для обновления с версии 4.7.2 и выше на версию 5.0 в ОС Linux.
Совет
Этот способ можно использовать, если ПО Comindware Platform развёрнуто на одной машине и нет возможности развернуть новую машину для экземпляра ПО новой версии. Если вы можете развернуть новую машину, то рекомендуется следовать инструкции «Обновление версии экземпляра ПО без его остановки».
Порядок обновления версии экземпляра ПО
-
Подготовьте экземпляр ПО к обновлению:
- Сохраните резервную копию экземпляра ПО.
- Остановите экземпляр ПО.
- Сохраните конфигурацию экземпляра ПО и вспомогательных служб.
- Удалите компоненты старой версии ПО.
- Переместите директорию с базой данных экземпляра ПО в резервную директорию.
-
Обновите версию ПО для экземпляра:
- Скачайте и распакуйте два дистрибутива: вспомогательного ПО и новой версии ПО.
- Удостоверьтесь, что все компоненты вспомогательного ПО установлены корректно.
- При необходимости обновите или установите вспомогательное ПО.
- Установите новую версию ПО.
- Удалите экземпляр ПО старой версии.
- Создайте экземпляр ПО новой версии.
- Обновите конфигурацию ПО и служб:
- Отредактируйте конфигурационные файлы в соответствии с ранее сохранёнными резервными копиями.
- Перезапустите экземпляр ПО и вспомогательные службы.
- Инициализируйте экземпляр ПО:
- Выполните вход и проверьте работоспособность ПО.
- Остановите экземпляр ПО.
- Скопируйте в экземпляр ПО ранее перемещённую директорию с базой данных.
- Обновите и проверьте структуру данных:
- Запустите экземпляр ПО.
- Обновите структуру данных до новой версии.
- Очистите кэши.
- Снова перезапустите экземпляр ПО.
- Подготовьте восстановленный экземпляр ПО к работе.
Подготовка экземпляра ПО к обновлению
Внимание!
Выполните подготовительные действия отдельно для каждого экземпляра ПО, версию которого требуется обновить.
- Создайте и перенесите во внешнее хранилище резервную копию базы данных экземпляра ПО. См. «Резервное копирование. Настройка и запуск, просмотр журнала сеансов».
-
Перейдите в режим суперпользователя:
sudo -s
или
su -
-
Сохраните резервную копию файлов конфигурации, например в директорию
/var/backups/config_tmp
:- Astra Linux, Ubuntu, Debian (DEB-based)
mkdir -p /var/backups/config_tmp/
cd /var/www/<instanceName>/
cp *.config *.yml *.json /var/backups/config_tmp/
cp /etc/nginx/sites-available/comindware<instanceName> /var/backups/config_tmp/
cp /etc/sysconfig/comindware<instanceName>-env /var/backups/config_tmp/
cp /usr/share/comindware/configs/instance/<instanceName>.yml /var/backups/config_tmp/
- РЕД ОС, Rocky (RPM-based)
mkdir -p /var/backups/config_tmp/
cd /var/www/<instanceName>/
cp *.config *.yml *.json /var/backups/config_tmp/
cp /etc/nginx/conf.d/comindware<instanceName> /var/backups/config_tmp/
cp /etc/sysconfig/comindware<instanceName>-env /var/backups/config_tmp/
cp /usr/share/comindware/configs/instance/<instanceName>.yml /var/backups/config_tmp/
- Альт Сервер
mkdir -p /var/backups/config_tmp/
cd /var/www/<instanceName>/
cp *.config *.yml *.json /var/backups/config_tmp/
cp /etc/nginx/sites-available.d/comindware<instanceName> /var/backups/config_tmp/
cp /etc/sysconfig/comindware<instanceName>-env /var/backups/config_tmp/
cp /usr/share/comindware/configs/instance/<instanceName>.yml /var/backups/config_tmp/
Здесь
<instanceName>
— имя экземпляра ПО. -
Остановите экземпляр ПО и вспомогательные службы и удостоверьтесь, что они остановлены:
systemctl stop apigateway<instanceName> adapterhost<instanceName> comindware<instanceName>
systemctl status apigateway<instanceName> adapterhost<instanceName> comindware<instanceName>
-
Удалите (или переместите в резервное хранилище) неиспользуемые предыдущие дистрибутивы ПО (
<distPath>
— путь к директории с дистрибутивом,<osname>
— название операционной системы):rm -rf <distPath>/CMW_<osname>
-
Переместите директорию с базой данных экземпляра ПО (
<username>
— имя пользователя Linux):mkdir -p /home/<username>/<instanceName>
mv /var/lib/comindware/<instanceName> /home/<username>/
Обновление версии ПО для экземпляра
Внимание!
Если при обновлении на шаге 23 будут обнаружены ошибки, не продолжайте обновление, установите старую версию, восстановите экземпляр ПО из резервной копии и обратитесь в службу поддержки Comindware.
Обновление нескольких экземпляров ПО
Выполните приведённые ниже шаги для каждого экземпляра ПО, версию которого требуется обновить, так как скрипт обновления выполняется отдельно для указанного экземпляра ПО.
Установка вспомогательного ПО и дистрибутива с новой версией ПО осуществляется только при обновлении первого экземпляра ПО. При обновлении последующих экземплятов ПО на эту версию, повторять шаги 1-5 не требуется.
После обновления всех экземпляров ПО для экономии места старую версию ПО можно удалить согласно инструкции «Удаление версии ПО».
-
Скачайте и распакуйте дистрибутив с новой версией вспомогательного ПО (
X.X
,<prerequisitesVersion>
— номер версии):cd <distPath>
tar -xf X.X-release-ru-<prerequisitesVersion>.prerequisites.<osname>.tar.gz
-
Перейдите в директорию со скриптами для развёртывания вспомогательного ПО:
cd <prerequisitesDistPath>/CMW_<osname>/scripts
Здесь:
<prerequisitesDistPath>/CMW_<osname>/
— путь к распакованному дистрибутиву со вспомогательным ПО. -
Убедитесь, что все компоненты установлены:
sh prerequisites_list.sh
Внимание!
Если какой-то из компонентов не установлен или установлена старая версия, то установите вспомогательное ПО заново. См. «Установка вспомогательного ПО».
-
Скачайте и распакуйте дистрибутив с новой версией ПО (
X.X
,<version>
— номер версии):cd <distPath>
tar -xf X.X-release-ru-<version>.<osname>.tar.gz
-
Перейдите в распакованную директорию:
cd CMW_<osname>_<version>/scripts/
-
Установите новую версию ПО:
bash version_install.sh
-
Проверьте наличие и имя директории установленной версии ПО:
bash version_list.sh
-
Отобразится список установленных версий ПО на сервере.
-
Удалите экземпляр ПО старой версии и его данные:
bash instance_delete.sh -n=<instanceName> --deleteData
-
Создайте экземпляр ПО новой версии:
bash instance_create.sh -n=<instanceName> -p=<portNumber> -v=<version>
Здесь:
-n=<instanceName>
— имя экземпляра ПО;-p=<portNumber>
- порт для экземпляра ПО, по умолчанию: 80 (необязательный ключ);-v=<version>
— установленная версия ПО.
-
По окончании создания скрипт выведет информацию о компонентах экземпляра ПО. Удостоверьтесь, что компоненты успешно установлены.
Пример результата выполнения скрипта:
...
[Done] Creating Log Directories.
OK Instance folder created.
OK Instance Web config created.
OK Instance Ignite config created.
OK Instance binaries linked.
OK Instance config created.
OK Data folder created.
OK Database folder created: Yes
OK Streams folder created: No
OK Logs folder created: Yes
OK Used version: <version>
OK Logs configured.
OK Sites created.
OK Sites enabled.
OK API Gateway configured.
OK Link to binaries is valid.
OK Instance service started.
OK Instance API gateway service started.
OK NGINX started.
OK Final status.
[Done] Upgrade CBAP instance.
Если какая-либо из служб имеет статус
FAILED
, игнорируйте это и продолжайте выполнение следующих шагов согласно инструкции, так как устранять эти неполадки следует позже. -
Обновите конфигурацию ПО и служб.
Обновление конфигурации ПО и служб
-
Отредактируйте конфигурацию NGINX для экземпляра ПО в соответствии с резервной копией, сохранённой ранее:
-
Astra Linux, Ubuntu, Debian (DEB-based)
nano /etc/nginx/sites-available/comindware<instanceName>
-
РЕД ОС, Rocky (RPM-based)
nano /etc/nginx/conf.d/comindware<instanceName>
-
Альт Сервер
nano /etc/nginx/sites-available.d/comindware<instanceName>
-
-
Перезапустите службу NGINX для применения изменений:
nginx -s reload
-
Отредактируйте файлы конфигурации в соответствии с резервными копиями, сохранёнными ранее:
nano /etc/sysconfig/comindware<instanceName>-env
nano /var/www/<instanceName>/adapterhost.yml
nano /var/www/<instanceName>/apigateway.yml
nano /var/www/<instanceName>/Ignite.config
nano /usr/share/comindware/configs/instance/<instanceName>.yml
Внимание!
- В новейших версиях Comindware Platform отсутствует файл
Workers.config
. - Настройка соответствующих служб выполняется в файле конфигурации экземпляра ПО
<instanceName>.yml
.
- В новейших версиях Comindware Platform отсутствует файл
-
Перезапустите службы Comindware Platform:
systemctl restart adapterhost<instanceName>.service
systemctl restart comindware<instanceName>.service
systemctl restart apigateway<instanceName>.service
-
Инициализируйте экземпляра ПО.
Инициализация экземпляра ПО
-
Откройте сайт экземпляра ПО в браузере, одновременно открыв выдачу журналов экземпляра в терминале:
tail -f /var/log/comindware/<instanceName>/Logs/heartbeat*
-
В браузере выполните инициализацию экземпляра ПО, выполните вход и проверьте работоспособность ПО.
-
Остановите экземпляр ПО:
systemctl stop comindware<instanceName>
-
Скопируйте в экземпляр ПО директорию с базой данных экземпляра ПО, сохранённую ранее (
<username>
— имя пользователя Linux):cp -R /home/<username>/<instanceName>/Database /var/lib/comindware/<instanceName>/
-
Перейдите в папку с экземпляром ПО и поменяйте права для скопированной директории с базой данных:
cd /var/lib/comindware/<instanceName>/
chmod -R 777 Database/
sudo chown -R www-data:www-data Database/
-
Обновите структуру данных.
Обновление и проверка структуры данных
Обновление с версии 4.7 на версию 5.0
При обновлении с версии 4.7 на версию 5.0 обновляется структура базы данных.
После этого необходимо вручную удалить некоторые данные кэша в старом формате.
Поэтому продолжать обновление версии экземпляра ПО можно только после успешного обновления структуры данных.
-
Запустите экземпляр ПО:
systemctl start comindware<instanceName>
-
Откройте сайт экземпляра ПО в браузере, дождитесь окончания загрузки, одновременно открыв выдачу журналов экземпляра в терминале:
tail -f /var/log/comindware/<instanceName>/Logs/heartbeat*
См. «Подсистема журналирования».
-
Дождитесь завершения обновления структуры данных:
- Удостоверьтесь, что появились журналы обновления:
/var/log/comindware/<instanceName>/Logs/UpgradeOntology.log
/var/log/comindware/<instanceName>/Logs/upgrade<ГГГГ-ММ-ДД>.log
- Удостоверьтесь, что в журнале
UpgradeOntology.log
последняя запись содержит строкуUpgrade of ontology completed successfully
. - Удостоверьтесь, что в журнале
upgrade<ГГГГ-ММ-ДД>.log
последняя запись содержит строкуUpgrade completed
. - Удостоверьтесь, что в журналах отсутствуют ошибки обновления. Найдите их по ключевому слову
error
.
- Удостоверьтесь, что появились журналы обновления:
-
Проверьте результат обновления структуры данных.
-
Если обновление структуры данных выполнено успешно:
- При обновлении с версии 5.0:
- Обновление структуры данных завершено.
- Переходите к Подготовке восстановленного экземпляра ПО к работе.
- При обновлении с версии 4.7 на версию 5.0 переходите к шагу 5.
- При обновлении с версии 5.0:
-
Если в журнале обновления имеются ошибки:
- Не переходите к шагу 5.
- Снова установите для экземпляра старую версию ПО.
- Восстановите базу данных из резервной копии.
- Обратитесь в службу поддержки Comindware, предоставив журналы обновления и ошибок для анализа.
-
-
Создайте резервную копию экземпляра ПО:
-
в формате
.CDBBZ
средствами Comindware Platform;или
-
c помощью скрипта для создания снимка базы.
-
-
Остановите экземпляр ПО.
-
Распакуйте резервную копию и удалите из неё следующие директории кэшей:
rm -rf cacheGroup-*-TableIdentity
rm -rf cacheGroup-*-TableIdentityReplicated
rm -rf cacheGroup-*Value
rm -rf cacheGroup-*ValueReplicated
rm -rf cache-ignite-sys-cache
rm -rf cp
rm -rf metastorage
rm -rf cacheGroup-Keys
-
Очистите директорию с базой данных экземпляра ПО:
rm -rf /var/lib/comindware/<instanceName>/Database/*
-
Скопируйте очищенную резервную копию в директорию с базой данных:
/var/lib/comindware/<instanceName>/Database/
-
Назначьте владельца директории с базой данных:
- Astra Linux, Ubuntu, Debian (DEB-based)
chown -R www-data:www-data /var/lib/comindware/<instanceName>/Database
- РЕД ОС, Rocky (RPM-based)
chown -R nginx:nginx /var/lib/comindware/<instanceName>/Database
- Альт Сервер
chown -R _nginx:_nginx /var/lib/comindware/<instanceName>/Database
-
Подготовьте восстановленный экземпляр ПО к работе.
Подготовка восстановленного ПО к работе
- Запустите экземпляр ПО.
- Проверьте и при необходимости исправьте конфигурацию экземпляра ПО. См. «Проверка и настройка конфигурации экземпляра ПО Comindware Platform после восстановления из резервной копии».
- Проверьте и работоспособность экземпляра ПО.
- Создайте резервную копию работоспособного экземпляра Comindware Platform.
Эта статья была полезна 3 чел.