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

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

Ключ

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

...

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

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

Блок кода
languagebash
linenumberstrue
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/, в частности наличие архивов:

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


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

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


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

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

Подсказка

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

Для платформы версии 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

для 1.25

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


Подсказка

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

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

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

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

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

Блок кода
languagebash
linenumberstrue
lscpu | grep avx

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

Блок кода
languagebash
linenumberstrue
service mongod stop
systemctl disable mongod

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

Блок кода
languagebash
linenumberstrue
service mongod status

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

Блок кода
languageyml
titleСодержимое конфигурационного файла vars/service_parameters.yml
linenumberstrue
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 как внешний сервис на сервере данный шаг не требуется для выполнения):

Блок кода
languagebash
linenumberstrue
apt update
apt install mongo-tools mongodb-clients


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

Подсказка

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

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

Блок кода
languagebash
linenumberstrue
ansible-playbook install.yml

для 1.25

Блок кода
languagebash
linenumberstrue
ansible-playbook install_iot.yml

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

Блок кода
languagebash
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


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

Подсказка

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

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

Блок кода
languagebash
linenumberstrue
ansible-playbook services_stop.yml --extra-vars '{"services":["core", "broker", "olapservice"]}'

для 1.25

Блок кода
languagebash
linenumberstrue
ansible-playbook stop_iot.yml --extra-vars '{"services":["core", "broker", "olapservice"]}'

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

Блок кода
languagebash
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


Примечание

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

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


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

Блок кода
languagebash
linenumberstrue
ansible-playbook services_stop.yml
ansible-playbook install.yml

для 1.25

Блок кода
languagebash
linenumberstrue
ansible-playbook stop_iot.yml
ansible-playbook install_iot.yml


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

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

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

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

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

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

Блок кода
languagebash
linenumberstrue
ansible-playbook services_stop.yml
ansible-playbook install.yml

для 1.25

Блок кода
languagebash
linenumberstrue
ansible-playbook stop_iot.yml
ansible-playbook install_iot.yml


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

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

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