Обновление версии ПО ECCM состоит из следующих этапов:
- 0. Создание резервной копии данных;
- 1. Скачивание и распаковка архива с новой версией файлов запуска ЕССМ;
- 2. Остановка старой версии ECCM;
- 3. Запуск новой версии ЕССМ.
Начиная с версии 2.7, сервисы ЕССМ используют версию PostgreSQL 16.11.
Если обновление до версии 2.9 осуществляется с версии 2.6 (или более ранней), то перед выполнением шагов из данного раздела выполните обновление до версии 2.7 (так как необходимо обновить базу данных PostgreSQL с версии 14.2 до версии 16.11). Подробная инструкция по обновлению БД приведена в разделе "Обновление 2.6 -> 2.7".
Создание резервной копии
Для возможности отката к предыдущей версии перед началом обновления рекомендуем создать резервную копию данных. В случае если ECCM установлен на сервере с использованием виртуализации, следует сделать Snapshot системы. В ином случае — создать резервную копию базы данных eccm средствами PostgreSQL. Подробная инструкция по созданию резервной копии базы данных приведена в разделе "Резервное копирование базы данных ЕССМ".
[ -d eccm/2.9 ] && sudo cp eccm/2.9 "eccm/eccm-backup-2.9-$(date +%Y%m%d)" #создание бэкапа текущей директории ECCM, если она существует
Получение и распаковка архива
Для 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/
Для удобства работы рекомендуется предварительно разместить файлы для запуска новой версии в соседнюю директорию от старой, например:
$ tree -L 2 --dirsfirst
.
├── 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
└── 2.9
├── backup
├── eccm
├── keepalived
├── peeper
├── postgres
├── root-ca-generator
├── script-libs/
├── witness
├── README.md
├── .env.cluster
├── args-compose-tools.log
├── compose-tools.sh
├── generate-cert.sh
└── technical_support.sh
В случае многохостовой установки скачайте и распакуйте архив и на сервер с ЕССМ, и на сервер с базой данных.
В случае установки в отказоустойчивой системе скачайте и распакуйте архив на каждый узел системы.
Остановка старой версии ECCM
Остановка сервисов ЕССМ при однохостовой установке
Когда ECCM запущен на одном хосте (ЕССМ и база данных находятся на одном сервере), для остановки старой версии ЕССМ и удаления контейнеров выполните команду из директории с файлами запуска старой версии ECCM:
cd <путь до каталога с файлами запуска ECCM 2.8> sudo ./compose-tools.sh --stop
Остановка сервисов ЕССМ при многохостовой установке
Когда ECCM запущен на нескольких хостах (ЕССМ на одном сервере, база данных — на другом), для остановки старой версии ЕССМ и удаления контейнеров выполните на каждом хосте команды, приведенные ниже.
cd <путь до каталога с файлами запуска ECCM 2.8> sudo ./compose-tools.sh --stop --delete-containers
Остановка сервисов ЕССМ в отказоустойчивой системе
Остановка старой версии ЕССМ в отказоустойчивой системе должна быть произведена в определенном порядке в соответствии с ролью узла БД. Для того чтобы узнать текущую роль узла, перейдите на сервер 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.
Далее произведите остановку узла с ролью 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. Для синхронизации конфигурационных файлов между узлами воспользуйтесь инструкцией в разделе Запуск ЕССМ в отказоустойчивой системе.
Изменение параметра RECONFIGURE_CLUSTER инициализирует принудительное назначение ролей. При отсутствии изменения данного параметра узел Slave не будет обновлен и система может не запуститься.
Запуск новой версии ЕССМ
Для 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.