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

Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 9 Следующий »

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

  • снятие резервной копии БД
  • подготовка рабочего окружения
  • установка новой версии платформы (автоматического обновления платформы не предусмотрено). Также потребуется провести повторное конфигурирование для развертывания через 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.

Обратиться к контейнеру с микросервисом БД. Например (для версии 1.22):

docker ps


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

В частности интересует контейнер iot-mongo с id 4b826bfc266e. Необходимо запустить сценарии из данного контейнера:

docker exec -it 4b826bfc266e /etc/cron.daily/iot-broker-backupdb
docker exec -it 4b826bfc266e /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

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

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_mapped_port: 8023
olapservice_db_mapped_port: 8123
core_api_mapped_port: 8071
core_api_ssl_mapped_port: 8073
iot_core_log_level: debug
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

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"]}'

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

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

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

  • Нет меток