Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных

Для обновления платформы необходимо выполнить ряд действий:

  • снятие резервной копии БД
  • подготовка рабочего окружения
  • установка новой версии платформы (автоматического обновления платформы не предусмотрено). Также потребуется провести повторное конфигурирование для развертывания через Ansible
  • перенос резервной копии БД (актуально для версии платформы < 1.19.4 или при переходе на внутренний микросервис БД)


Снятие резервной копии БД

Для платформы версии < 1.19.4:

 Все команды из описания необходимы выполнять с правами root.

Перейти в директорию  /etc/cron.daily/. В данной директории проверить наличие файлов-сценариев:

iot-backupdb
iot-broker-backupdb

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

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

./iot-backupdb
./iot-broker-backupdb

После успешного завершения процесса бэкапа, необходимо проверить содержимое директории /var/backups/mongobackups/, в частности наличие архивов:

iot-core*
iot-broker*
iot-events*
iot-licenses*

Рекомендуется перенести резервные копии в хранилище отличное от исходного сервера. 


Для платформы версии 1.19.4 и выше:

 Все команды из описания необходимы выполнять с правами root.

Обратиться к контейнеру с микросервисом БД. В частности интересует контейнер iot-mongo. Необходимо запустить сценарии из данного контейнера:

docker exec -it iot-mongo /etc/cron.daily/iot-broker-backupdb
docker exec -it iot-mongo /etc/cron.daily/iot-backupdb

После успешного завершения процесса бэкапа, необходимо проверить содержимое директории /storage/iot/mongodb/mongobackups/, в частности наличие архивов:

iot-core*
iot-broker*
iot-events*
iot-licenses*

Рекомендуется перенести резервные копии в хранилище отличное от исходного сервера. 


Подготовка рабочего окружения

Необходимо подготовить сервер для инсталляции платформы.

 Все команды из описания необходимы выполнять с правами root.

Для платформы версии 1.19.4 и выше:
1. Остановить микросервисы предыдущей инсталляции. Необходимо выполнить в консоли:

docker rm -f $(docker ps -a -q)
docker volume rm -f $(docker volume ls -q)
docker image rm -f $(docker image ls -q)

2. Удалить файлы конфигурации Ansiblle от предыдущей инсталляции /etc/ansible-iot, предварительно сделав резервную копию

3. Если инсталляция новой версии платформы производится на исходном сервере, необходимости в повторной инсталляции зависимостей для Ansible нет

4. Распаковать полученный архив с файлами конфигурации новой версии платформы. Например:

Распаковка архива с конфигурацией
tar -C /etc -xvf ansible-iot-1.23.tar.gz

для 1.25

Распаковка архива с конфигурацией
tar -C /etc -xvf ansible-iot-1.25.tar.gz

 Для получения файлов конфигурации обратитесь с запросом в Коммерческий отдел ЭЛТЕКС.

5. Отредактируйте файлы конфигурации согласно основной документации 

6. Перед выполнением следующих действий необходимо уточнить наличие/поддержку инструкций AVX на CPU сервера. Если поддержка отсутствует, то в настройках Ansible (платформы), т.е. vars/default.yml изменить параметр:

Содержимое конфигурационного файла vars/default.yml
mongodb_version: 4

Для проверки наличия требуемых инструкция:

lscpu | grep avx

(Опционально) Если ранее использовалась mongodb как внешний сервис и требуется перенести всю инфраструктуру БД в миеросервисы, то необходимо выполнить остановку сервиса mongod (с отключением автоматического запуска). Например:

service mongod stop
systemctl disable mongod

Проверить что сервис остановился:

service mongod status

Подготовить и настроить проект платформы в ansible-iot для доступа к БД контейнера mongo. Для ansible-iot должны быть настроены следующие параметры в vars/service_parameters.yml:

Содержимое конфигурационного файла vars/service_parameters.yml
db_mapped_port: 27017
olapservice_db_mapped_port: 8123
export_mongo_port: true
export_olapservice_port: true
export_olapservice_db_port: true

7. Для восстановления из резервной копии БД необходимо предварительно подготовить и проинсталлировать необходимо ПО, в частности если ранее не было установлено ПО mongo-tools и/или mongodb-clients сли ранее использовалась mongodb как внешний сервис на сервере данный шаг не требуется для выполнения):

apt update
apt install mongo-tools mongodb-clients


Установка новой версии платформы

 Все команды из описания необходимы выполнять с правами root.

1. Запустить процесс инсталляции платформы:

ansible-playbook install.yml

для 1.25

ansible-playbook install_iot.yml

2. Дождаться окончания операции. Проверить что все сервисы запущены:

docker ps


b2a306a11313   hub.eltex-co.ru/iot/iot-double-web:1.23
7356ae9e78ca   hub.eltex-co.ru/iot/iot-core:1.23
8ac05e3f4025   hub.eltex-co.ru/iot/iot-mqttbroker-mongo:1.23
aa97316118c3   hub.eltex-co.ru/softwlc/eltex-ngw:1.18
24b8b2632912   hub.eltex-co.ru/iot/iot-clickhouse-backup:1.23
8a6cb2fab0b6   hub.eltex-co.ru/iot/iot-olapservice:1.23
1ad497e3e9ff   hub.eltex-co.ru/iot/iot-clickhouse-server:1.23
4b826bfc266e   hub.eltex-co.ru/iot/iot-mongo5:1.23


Перенос резервной копии БД

 Все команды из описания необходимы выполнять с правами root.

1. Остановить микросервисы с доступом до БД:

ansible-playbook services_stop.yml --extra-vars '{"services":["core", "broker", "olapservice"]}'

для 1.25

ansible-playbook stop_iot.yml --extra-vars '{"services":["core", "broker", "olapservice"]}'

2. Восстановить записи из резервных копий mongo, например:

mongorestore --host=127.0.0.1 --port=27017 --db=iot-core --noIndexRestore --drop var/backups/mongobackups/iot-core/2022-04-18_04-26/iot-core
mongorestore --host=127.0.0.1 --port=27017 --db=iot-events --noIndexRestore --drop var/backups/mongobackups/iot-events/2022-04-18_04-26/iot-events
mongorestore --host=127.0.0.1 --port=27017 --db=iot-broker --noIndexRestore --drop var/backups/mongobackups/iot-broker/2022-04-18_04-26/iot-broker
mongorestore --host=127.0.0.1 --port=27017 --db=iot-licenses --noIndexRestore --drop var/backups/mongobackups/iot-licenses/2022-04-18_04-26/iot-licenses

Для восстановления записей из резервных копий olap (история событий) необходимо выполнить дополнительно шаги согласно документации

В частности скопировать бэкапы из /storage/iot/olapdb/clickhouse-backup/archives/ и выполнить перенос согласно п.п.8 документации.


3. Перезапустить все микросервисы:

ansible-playbook services_stop.yml
ansible-playbook install.yml

для 1.25

ansible-playbook stop_iot.yml
ansible-playbook install_iot.yml

В процессе переноса/восстановления из бэкапа БД, в момент первого запуска платформы категорически не рекомендуется вмешиваться в данный процесс (например, останавливать контейнеры). Необходимо дождаться завершения миграции БД.

На процесс запуска может виляет производительность сервера. Необходимо убедиться, что сервер или гостевая система (виртуальная машина) соответствует минимальным требованиям.

4. По окончанию процесса переноса бэкапа БД и успешного старта платформы необходимо вернуть в исходное состояние параметры в vars/service_parameters.yml:

Содержимое конфигурационного файла vars/service_parameters.yml
export_mongo_port: false
export_olapservice_port: false
export_olapservice_db_port: false

5. Перезапустить все микросервисы:

ansible-playbook services_stop.yml
ansible-playbook install.yml

для 1.25

ansible-playbook stop_iot.yml
ansible-playbook install_iot.yml

В процессе переноса/восстановления из бэкапа БД, в момент первого запуска платформы категорически не рекомендуется вмешиваться в данный процесс (например, останавливать контейнеры). Необходимо дождаться завершения миграции БД.

На процесс запуска может виляет производительность сервера. Необходимо убедиться, что сервер или гостевая система (виртуальная машина) соответствует минимальным требованиям.

  • Нет меток