Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

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


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

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

Подсказка

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

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

Блок кода
languagebash
linenumberstrue
iot-backupdb
iot-broker-backupdb


Предупреждение

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

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

Блок кода
languagebash
linenumberstrue
./iot-backupdb
./iot-broker-backupdb

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

Блок кода
languagebash
linenumberstrue
iot-core*
iot-broker*
iot-events*
iot-licenses*


Предупреждение

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


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

Подсказка

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

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

Блок кода
languagebash
linenumberstrue
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. Необходимо запустить сценарии из данного контейнера:

Блок кода
languagebash
linenumberstrue
docker exec -it 4b826bfc266e /etc/cron.daily/iot-broker-backupdb
docker exec -it 4b826bfc266e /etc/cron.daily/iot-backupdb

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

Блок кода
languagebash
linenumberstrue
iot-core*
iot-broker*
iot-events*
iot-licenses*


Предупреждение

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


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

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

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

Блок кода
languagebash
linenumberstrue
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. Распаковать полученный архив с файлами конфигурации новой версии платформы. Например:

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


Подсказка

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

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

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

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

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

Блок кода
languageyml
titleСодержимое конфигурационного файла vars/default.yml
linenumberstrue
lscpu | grep avx

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

Блок кода
languageyml
titleСодержимое конфигурационного файла vars/default.yml
linenumberstrue
service mongod stop
systemctl disable mongod

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

Блок кода
languageyml
titleСодержимое конфигурационного файла vars/default.yml
linenumberstrue
service mongod status

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

Блок кода
languageyml
titleСодержимое конфигурационного файла vars/default.yml
linenumberstrue
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


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

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

Блок кода
languageyml
titleСодержимое конфигурационного файла vars/default.yml
linenumberstrue
ansible-playbook install.yml

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

Блок кода
languageyml
titleСодержимое конфигурационного файла vars/default.yml
linenumberstrue
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
docker exec -it 4b826bfc266e /etc/cron.daily/iot-broker-backupdb
docker exec -it 4b826bfc266e /etc/cron.daily/iot-backupdb


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

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

Блок кода
languageyml
titleСодержимое конфигурационного файла vars/default.yml
linenumberstrue
ansible-playbook services_stop.yml --extra-vars '{"services":["core", "broker", "olapservice"]}'

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

Блок кода
languageyml
titleСодержимое конфигурационного файла vars/default.yml
linenumberstrue
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

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

Блок кода
languageyml
titleСодержимое конфигурационного файла vars/default.yml
linenumberstrue
ansible-playbook services_stop.yml
ansible-playbook install.yml


Предупреждение

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

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