Обновление версии ПО ECCM состоит из следующих этапов:
Начиная с версии 2.7, сервисы ЕССМ используют версию PostgreSQL 16.11. Если обновление до версии 2.9 осуществляется с версии 2.6 (или более ранней), то перед выполнением шагов из данного раздела выполните обновление до версии 2.7 (так как необходимо обновить базу данных PostgreSQL с версии 14.2 до версии 16.11). Подробная инструкция по обновлению БД приведена в разделе "Обновление 2.6 -> 2.7". |
Для возможности отката к предыдущей версии перед началом обновления рекомендуем создать резервную копию данных. В случае если ECCM установлен на сервере с использованием виртуализации, следует сделать Snapshot системы. В ином случае — создать резервную копию базы данных eccm средствами PostgreSQL. Подробная инструкция по созданию резервной копии базы данных приведена в разделе "Резервное копирование ЕССМ". |
Для offline-установки воспользуйтесь инструкцией по загрузке установочных файлов и установке образов проекта, приведенной в разделе "Offline-установка ЕССМ". |
Перед установкой новой версии ЕССМ необходимо предварительно скачать архив с файлами системы. Файлы, необходимые для запуска проекта, распространяются в виде архива .tar.gz. Их можно получить с общедоступного облака.
При обновлении до любой более новой версии (в том числе патча 2.9.x) получите новый установочный архив с помощью команды ниже. Запуск на старой версии не допускается, т. к. скрипт compose-tools.sh и конфигурационные файлы могут изменяться между патчами. |
Загрузите архив на сервер и распакуйте его. Рекомендуется распаковывать архив в заранее созданную отдельную директорию:
wget "https://cloud.eltex-co.ru/index.php/s/P8xDfmyo3XyEs0g/download?path=%2F&files=eccm-2.9.tar.gz" -O eccm-2.9.tar.gz [ ! -d eccm ] && mkdir eccm sudo tar -zxvf eccm-2.9.tar.gz -C eccm/ |
Для удобства работы рекомендуется предварительно разместить файлы для запуска новой версии в соседнюю директорию от старой, например:
|
В случае многохостовой установки скачайте и распакуйте архив и на сервер с ЕССМ, и на сервер с базой данных. |
В случае установки в отказоустойчивой системе скачайте и распакуйте архив на каждый узел системы. |
Когда ECCM запущен на одном хосте (ЕССМ и база данных находятся на одном сервере), для остановки старой версии ЕССМ и удаления контейнеров выполните команду из директории с файлами запуска старой версии ECCM:
cd <путь до каталога с файлами запуска ECCM 2.8> sudo ./compose-tools.sh --stop |
Когда ECCM запущен на нескольких хостах (ЕССМ на одном сервере, база данных — на другом), для остановки старой версии ЕССМ и удаления контейнеров выполните на каждом хосте команды, приведенные ниже.
cd <путь до каталога с файлами запуска ECCM 2.8> sudo ./compose-tools.sh --stop --delete-containers |
Когда ЕССМ запущен в отказоустойчивой системе с БД на отдельном сервере, для остановки старой версии ЕССМ сначала остановите кластер приложений. Перейдите на сервера Master-app и Slave-app и выполните команды, приведенные ниже.
Остановка Master-db и Slave-db должна быть произведена в определенном порядке в соответствии с ролью узла БД. Для того чтобы узнать текущую роль узла, перейдите на сервер Witness и выполните следующие команды:
Вывод скрипта отобразит роль сервера в БД, а также его статус:
Для корректного обновления обязательным условием является роль Standby для сервера Slave.
Далее произведите остановку БД с ролью Standby при помощи следующей команды:
После полной остановки старой версии ЕССМ на сервере Standby при помощи аналогичной команды одновременно остановите оставшиеся узлы системы.
Также произведите остановку утилиты Keepalived на узлах Master и Slave при помощи следующей команды:
Для отказоустойчивой системы после успешной остановки старой версии ЕССМ на каждом узле необходимо произвести копирование сертификатов в директорию с новой версией:
В версии ЕССМ 2.9 конфигурационный файл
|
Остановка старой версии ЕССМ в отказоустойчивой системе должна быть произведена в определенном порядке в соответствии с ролью узла БД. Для того чтобы узнать текущую роль узла, перейдите на сервер Witness и выполните следующие команды:
cd <путь до каталога с файлами запуска ECCM 2.9>/witness/scripts bash check-postgres-cluster.sh |
Вывод скрипта отобразит роль сервера в БД, а также его статус:
Состояние PostgreSQL-кластера по данным witness: Primary: - master (100.110.3.139), статус: * running Standby: - slave (100.110.2.145), статус: running, upstream: master Witness: - witness (100.110.3.67), статус: * running, upstream: master |
Для корректного обновления обязательным условием является роль Standby для сервера Slave.
Если вывод скрипта отображения ролей сервера в БД соответствует следующему:
То необходимо принудительно сменить мастерство БД на узлах системы. Перейдите на сервер Slave-узла и принудительно остановите контейнер:
Далее перейдите на сервер Witness и выполните следующие команды:
Дождитесь следующего вывода:
После того как Master-узел получит роль Primary, вернитесь на сервер Slave и возобновите работу контейнера:
На сервере Witness-узла убедитесь, что роли БД распределились в соответствии со следующим примером:
|
Далее произведите остановку узла с ролью Standby при помощи следующей команды:
cd <путь до каталога с файлами запуска ECCM 2.8> sudo ./compose-tools.sh --stop --delete-containers |
После полной остановки старой версии ЕССМ на сервере Standby при помощи аналогичной команды одновременно остановите оставшиеся узлы системы.
При нарушении последовательности остановки узлов система не запустится. |
Также произведите остановку утилиты Keepalived на узлах Master и Slave при помощи следующей команды:
sudo systemctl stop keepalived |
Для отказоустойчивой системы после успешной остановки старой версии ЕССМ на каждом узле необходимо произвести копирование сертификатов в директорию с новой версией:
cd <путь до каталога с файлами запуска ЕССМ 2.8> sudo cp cluster-cert/* <путь до каталога с файлами запуска ЕССМ 2.9>/cluster-cert/ |
В версии ЕССМ 2.8 конфигурационный файл .env.cluster был изменен. Повторно заполните данный файл, а также произведите изменение значения параметра RECONFIGURE_CLUSTER на true. Для синхронизации конфигурационных файлов между узлами воспользуйтесь инструкцией в разделе "Запуск ЕССМ в отказоустойчивой системе".
Изменение параметра |
Для offline-установки воспользуйтесь инструкцией, приведенной в разделе "Инструкция по установке и запуску". |
Для однохостовой системы после успешной остановки старой версии ЕССМ перейдите в директорию, в которую был распакован архив с новой версией ЕССМ, и выполните команду:
cd <путь до каталога с файлами запуска ECCM 2.9> sudo ./compose-tools.sh --pull --start <IP ADDRESS> |
При запуске будет предложено создать файл .env.personal при его отсутствии. После подтверждения будет предложено добавить ключ шифрования в созданный файл — подтвердите данное действие. Описание файла и переменной приведено в разделе "Инструкция по установке и запуску".
Если система была установлена на нескольких хостах, для запуска новой версии ECCM выполните команды, приведенные ниже.
На сервере с базой данных:
cd <путь до каталога с файлами запуска ECCM 2.9> sudo ./compose-tools.sh --pull --start <IP ADDRESS DATABASE> --database-only |
Подтвердите создание файла .env.personal и создание ключа шифрования. Описание файла и переменной приведено в разделе "Инструкция по установке и запуску".
Синхронизируйте файл между сервером с базой данных и сервером с ECCM:
sudo rsync -av --delete --rsync-path="sudo rsync" <полный путь до директории eccm>/.env.personal <имя пользователя сервера>@<IP-адрес сервера назначения>:<полный путь до директории eccm> |
На сервере с ЕССМ:
cd <путь до каталога с файлами запуска ECCM 2.9> sudo ./compose-tools.sh --pull --start <IP ADDRESS> --database-host <IP ADDRESS DATABASE> --database-port <PORT DATABASE> |
Для запуска новой версии ЕССМ в отказоустойчивой системе при стандартной схеме необходимо произвести запуск узла мастера:
sudo ./compose-tools.sh --pull --start <IP ADDRESS> --cluster master |
Во время запуска Master-узла необходимо подтвердить создание файла .env.personal и переменной ключа шифрования. Описание файла и переменной приведено в разделе "Инструкция по установке и запуску".
После того как мастер будет инициализирован и готов к работе, синхронизируйте .env.personal между узлами:
sudo rsync -av --delete --rsync-path="sudo rsync" <полный путь до директории eccm>/.env.personal <имя пользователя сервера>@<IP-адрес сервера назначения>:<полный путь до директории eccm> |
Далее произведите запуск остальных узлов:
sudo ./compose-tools.sh --pull --start <IP ADDRESS> --cluster slave |
sudo ./compose-tools.sh --pull --start <IP ADDRESS> --cluster witness |
Восстановите работу утилиты Keepalived на узлах Master и Slave при помощи следующей команды:
sudo systemctl start keepalived |
Для запуска ЕССМ в отказоустойчивой системе при запуске БД на отдельных серверах воспользуйтесь инструкцией в разделе "Запуск ЕССМ в отказоустойчивой системе". |
После успешного запуска установите значение переменной RECONFIGURE_CLUSTER из конфигурационного файла .env.cluster на значение false.