Обновление версии ПО ECCM состоит из следующих этапов:

  1. 0. Создание резервной копии данных;
  2. 1. Скачивание и распаковка архива с новой версией файлов запуска ЕССМ;
  3. 2. Остановка старой версии ECCM;
  4. 3. Запуск новой версии ЕССМ.

Начиная с версии 2.7, сервисы ЕССМ используют версию PostgreSQL 16.11.

Если обновление до версии 2.8 осуществляется с версии 2.6 (или более ранней), то перед выполнением шагов из данного раздела выполните обновление до версии 2.7 (так как необходимо обновить базу данных PostgreSQL с версии 14.2 до версии 16.11). Подробная инструкция по обновлению БД приведена в разделе Обновление 2.6 -> 2.7.

Создание резервной копии

Для возможности отката к предыдущей версии перед началом обновления рекомендуем создать резервную копию данных. В случае если ECCM установлен на сервере с использованием виртуализации, следует сделать Snapshot системы. В ином случае — создать резервную копию базы данных eccm средствами PostgreSQL. Подробная инструкция по созданию резервной копии базы данных приведена в разделе "Резервное копирование базы данных ЕССМ".

Получение и распаковка архива

Для offline-установки воспользуйтесь инструкцией по загрузке установочных файлов и установке образов проекта, приведенной в разделе "Offline-установка ЕССМ"

Перед установкой новой версии ЕССМ необходимо предварительно скачать архив с файлами системы. Файлы, необходимые для запуска проекта, распространяются в виде архива .tar.gz. Их можно получить с общедоступного облака.

При обновлении до любой более новой версии (в том числе патчевой 2.8.x) получите новый установочный архив с помощью команды ниже. Запуск на старой версии не допускается, т.к. скрипт compose-tools.sh и конфигурационные файлы могут изменяться между патчами.

Загрузите архив на сервер и распакуйте его. Рекомендуется распаковывать архив в заранее созданную отдельную директорию:

wget "https://cloud.eltex-co.ru/index.php/s/P8xDfmyo3XyEs0g/download?path=%2F&files=eccm-2.8.tar.gz" -O eccm-2.8.tar.gz
[ ! -d eccm ] && mkdir eccm
[ -d eccm/2.8 ] && sudo mv eccm/2.8 "eccm/eccm-backup-2.8-$(date +%Y%m%d)" # создание бэкапа текущей директории ECCM.
sudo tar -zxvf eccm-2.8.tar.gz -C eccm/

Для удобства работы рекомендуется предварительно разместить файлы для запуска новой версии в соседнюю директорию от старой, например:

$ tree -L 2 --dirsfirst
.
├── 2.7
│   ├── db-tools
|   ├── eccm
│   ├── keepalived
│   ├── peeper
│   ├── postgres
│   ├── root-ca-generator
│   ├── witness
│   ├── README.md
│   ├── .env.cluster
│   ├── args-compose-tools.log
│   ├── compose-tools.sh
│   ├── generate-cert.sh
│   └── technical_support.sh
└── 2.8
    ├── eccm
    ├── keepalived
    ├── peeper
    ├── postgres
    ├── root-ca-generator
    ├── witness
    ├── README.md
    ├── .env.cluster
    ├── args-compose-tools.log
    ├── compose-tools.sh
    ├── generate-cert.sh
    └── technical_support.sh



В случае многохостовой установки скачайте и распакуйте архив и на сервер с ЕССМ, и на сервер с базой данных.

В случае установки в отказоустойчивой системе скачайте и распакуйте архив на каждый узел системы.

Остановка старой версии ECCM

Остановка сервисов ЕССМ при однохостовой установке

Когда ECCM запущен на одном хосте (ЕССМ и база данных находятся на одном сервере), для остановки старой версии ЕССМ и удаления контейнеров выполните команду из директории с файлами запуска старой версии ECCM:

cd <путь до каталога с файлами запуска ECCM 2.7>
sudo ./compose-tools.sh --stop


Остановка сервисов ЕССМ при многохостовой установке

Когда ECCM запущен на нескольких хостах (ЕССМ на одном сервере, база данных — на другом), для остановки старой версии ЕССМ и удаления контейнеров выполните на каждом хосте команды, приведенные ниже.

cd <путь до каталога с файлами запуска ECCM 2.7>
sudo ./compose-tools.sh --stop --delete-containers

Остановка сервисов ЕССМ в отказоустойчивой системе

Когда ЕССМ запущен в отказоустойчивой системе, для остановки старой версии ЕССМ и удаления контейнеров необходимо выполнить следующие команды на каждом узле системы: 

cd <путь до каталога с файлами запуска ECCM 2.7>
sudo ./compose-tools.sh --stop --delete-containers

Также произведите остановку утилиты Keepalived на узлах Master и Slave при помощи следующей команды:

sudo systemctl stop keepalived

Для отказоустойчивой системы после успешной остановки старой версии ЕССМ, на каждом узле необходимо произвести копирование сертификатов в директорию с новой версией:

cd <путь до каталога с файлами запуска ЕССМ 2.7>
sudo cp cluster-cert/* <путь до каталога с файлами запуска ЕССМ 2.8>/cluster-cert/

В версии ЕССМ 2.8 конфигурационный файл .env.cluster был изменен. Повторно заполните данный файл, а также произведите изменение значения параметра RECONFIGURE_CLUSTER на true. Для синхронизации конфигурационных файлов между узлами воспользуйтесь инструкцией в разделе Запуск ЕССМ в отказоустойчивой системе.

Изменение параметра RECONFIGURE_CLUSTER инициализирует принудительное назначение ролей. При отсутствии изменения данного параметра узел Slave не будет обновлен и система может не запуститься.

Запуск новой версии ЕССМ

Для offline-установки воспользуйтесь инструкцией, приведенной в разделе "Инструкция по установке и запуску".

Запуск новой версии ЕССМ при однохостовой установке

Для однохостовой системы после успешной остановки старой версии ЕССМ перейдите в директорию, в которую был распакован архив с новой версией ЕССМ, и выполните команду:

cd <путь до каталога с файлами запуска ECCM 2.8>
sudo ./compose-tools.sh --pull --start <IP ADDRESS>

Запуск новой версии ЕССМ при многохостовой установке

Если система была установлена на нескольких хостах, для запуска новой версии ECCM выполните команды, приведенные ниже.

На сервере с базой данных:

cd <путь до каталога с файлами запуска ECCM 2.8>
sudo ./compose-tools.sh --pull --start <IP ADDRESS DATABASE> --database-only

На сервере с ЕССМ:

cd <путь до каталога с файлами запуска ECCM 2.8>
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

После того как мастер будет инициализирован и готов к работе, произведите запуск остальных узлов:

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.