Рассматривается вариант обновления контроллера SWLC версии 1.5 на Ubuntu Server 14.04.
Перед обновлением необходимо обязательно сделать резервную копию виртуальной машины на случай необходимости восстановления.
Обновление контроллера производится в следующем порядке v.1.5 → v.1.7 →v.1.8 → v.1.9 → v.1.11→ mongo_update → v.1.12 → v.1.13 → v.1.14
Если во время обновления что-то пойдет не так, а сервис нужно будет быстро восстановить, то запускаете клон рабочей ВМ.
Обратите внимание, что обновление контроллера рекомендуется проводить в нерабочее время, так как будет перерыв в работе сервисов.
Подготовка к обновлению
Перед обновлением сделайте дамп БД и желательно сделать snapshot системы для возможного отката в случае неудачного обновления:
Установите пакет pv перед сохранением БД и запуском скрипта.
На вход скрипта требуется подать login/password от БД.
vagrant@trusty:~$ sudo apt install pv vagrant@trusty:~$ sudo ./backup_mysql.sh root root
Бэкап базы данных работоспособен только для вашей текущей версии mysql. Условно говоря, backup от Mysql версии 1 не подойдет к Mysql версии 2.
Проверить версию пакета Mysql можете командой:
mysql --version
vagrant@trusty:~$ sudo mysql --version mysql Ver 14.14 Distrib 5.7.27, for Linux (x86_64) using EditLine wrapper
Во время обновления в консоли Вам будут предложены варианты действий с конфигурационными файлами и базами данных.
Обновление SoftWLC 1.5 → SoftWLC 1.7
Обновление производится с помощью скрипта:
vagrant@trusty:~$ sudo chmod +x softwlc_1.7_upgrade.sh vagrant@trusty:~$ sudo ./softwlc_1.7_upgrade.sh
После обновления проверьте работоспособность сервисов и снова сделайте дамп БД/snapshot.
Обновление SoftWLC 1.7 → SoftWLC 1.8
Обновление производится с помощью скрипта:
vagrant@trusty:~$ sudo chmod +x softwlc_1.8_upgrade.sh vagrant@trusty:~$ sudo ./softwlc_1.8_upgrade.sh
После обновления проверяем работу сервисов. Делаем новый snapshot и дамп БД. В случае неработоспособности сервисов делаем откат на предыдущий snapshot системы.
Обновление SoftWLC 1.8 → SoftWLC 1.9
Положите конфигурационный файл softwlc_1.9_nginx.conf в корневую директорию и запустите скрипт обновления.
vagrant@trusty:~$ sudo chmod +x softwlc_1.9_upgrade.sh vagrant@trusty:~$ sudo ./softwlc_1.9_upgrade.sh
После обновления проверяем работу сервисов. Делаем новый snapshot и дамп БД. В случае неработоспособности сервисов делаем откат на предыдущий snapshot системы.
Обновление SoftWLC 1.9 → SoftWLC 1.11
Обновление производится с помощью скрипта:
vagrant@trusty:~$ sudo chmod +x eltex-softwlc-helper-mos_1.11.sh vagrant@trusty:~$ sudo ./eltex-softwlc-helper-mos_1.11.sh
eltex-softwlc-helper-mos_1.11.sh
После обновления проверяем работу сервисов. Делаем новый snapshot и дамп БД. В случае неработоспособности сервисов делаем откат на предыдущий snapshot системы.
Обновление БД Mongo
Если версия mongodb ниже 2.6 то требуется обновить пакет скриптом mongo_update.sh .
Проверка версии:
vagrant@trusty:~$ mongo --version
Отдельное обновление БД Mongo связано с тем, что последующие версии SWLC требуют новую версию Mongo.
Перед обновлением Вам следует подготовить и сконвертировать конфигурационный файл Mongo
Распакуйте архив mongo_converter.tar на сервере следующей командой:
vagrant@trusty:~$ tar -xvf mongo_converter.tar.gz
Запустите на сервере скрипт, указав местоположение старого конфигурационного файла Mongo. Для запуска скрипта понадобится python3.
vagrant@trusty:~$ python3 mongo-converter/mongo-converter/converter/converter_core.py /etc/mongodb.conf
Будет создан конвертированный конфигурационный файл mongod.conf для версии Mongo 4.
Приступаем к обновлению Mongo:
Запустите с опциями --backup --remove --install --restore-config - сохранит настройки, сделает резервное копирование баз, удалит любую существующую инсталяцию MongoDB, установит версию 4.0 из официального репозитория и установит настройки mongod.conf либо из папки где лежит сам скрипт, либо из резервной копии
vagrant@trusty:~$ sudo ./mongo_update.sh --backup --remove --install --restore-config
БД и конфиг-файл сохранится в дирректорию /tmp/mongo/
Если была настроена репликация данных, то настройте ее на данном этапе.
Запустите с опцией --restore для восстановления баз:
vagrant@trusty:~$ sudo ./mongo_update.sh --restore Platform: x86_64 Ubuntu distrib code name: trusty Restoring data... 2019-09-20T11:39:39.734+0700 preparing collections to restore from 2019-09-20T11:39:39.737+0700 reading metadata for wifi-customer-cab.eventlog from /tmp/mongo/dump/wifi-customer-cab/eventlog.metadata.json 2019-09-20T11:39:39.739+0700 reading metadata for pcrf.macs from /tmp/mongo/dump/pcrf/macs.metadata.json ...
Проверьте, что все восстановилось корректно;
Запустите с опцией --clean для очистки временных файлов и старых баз.
vagrant@trusty:~$ sudo ./mongo_update.sh --clean
Обновление SoftWLC 1.11 → SoftWLC 1.12
Обновление производится с помощью скрипта:
vagrant@trusty:~$ sudo chmod +x eltex-softwlc-helper-mos_1.12.sh vagrant@trusty:~$ sudo ./eltex-softwlc-helper-mos_1.12.sh
eltex-softwlc-helper-mos_1.12.sh
Проверяем работу сервисов. Делаем новый snapshot и дамп БД. В случае неработоспособности сервисов делаем откат на предыдущий snapshot системы.
Скрипт можете использовать прикрепленный к мануалу или же напрямую скачать с архива ELTEX:
vagrant@trusty:~$ wget http://archive.eltex.org/wireless/help/softwlc-1.12/eltex-softwlc-helper-mos_1.12.sh
Backup БД производится командами:
vagrant@trusty:~$ sudo ./backup_mysql.sh root root vagrant@trusty:~$ sudo ./mongo_update.sh --backup
Обновление SoftWLC 1.12 (Ubuntu 14.04)→ SoftWLC 1.13
Если у Вас стоит версия контроллера 1.12 и Ubuntu Server 14.04, то Вам потребуется подготовить второй сервер и установить на него Ubuntu Server 16.04.
После установки на новый сервер Ubuntu Server 16.04 Вам потребуется установить SWLC версии 1.12:
vagrant@trusty:~$ wget http://archive.eltex.org/wireless/help/softwlc-1.12/eltex-softwlc-helper-mos_1.12.sh vagrant@trusty:~$ sudo chmod +x eltex-softwlc-helper-mos_1.12.sh
eltex-softwlc-helper-mos_1.12.sh
Скрипт можете использовать прикрепленный к мануалу или же напрямую скачать с архива ELTEX:
vagrant@trusty:~$ wget http://archive.eltex.org/wireless/help/softwlc-1.12/eltex-softwlc-helper-mos_1.12.sh
Восстановление БД и обновление
Восстанавливаем последний backup Mysql и Mongo из пункта 12.
Перед восстановлением переместите содержимое директории /tmp/mongo/, дампы Mysql со старого сервера Ubuntu 14.04 на новый сервер с Ubuntu 16.04.
Конфигурационный файл mongod.conf положите в домашний каталог откуда будете запускать скрипт mongo_update.sh
sudo ./mongo_update.sh --restore-config sudo ./mongo_update.sh --restore sudo ./restore_mysql.sh root root
После восстановления БД проверяем работу сервисов. Делаем новый snapshot и дамп БД.
Обновления производим с помощью скрипта.
vagrant@trusty:~$ sudo chmod +x eltex-softwlc-helper-mos_1.13.sh vagrant@trusty:~$ sudo ./eltex-softwlc-helper-mos_1.13.sh
eltex-softwlc-helper-mos_1.13.sh
Скрипт можете использовать прикрепленный к мануалу или же напрямую скачать с архива ELTEX:
vagrant@trusty:~$ wget http://archive.eltex.org/wireless/help/softwlc-1.13/eltex-softwlc-helper-mos_1.13.sh
Проверяем работу сервисов. Делаем новый snapshot и дамп БД. В случае неработоспособности сервисов делаем откат на предыдущий snapshot системы.
После установки SWLC 1.12 перенесите лицензии со старого сервера на новый сервер.
Обновление SoftWLC 1.13 → SoftWLC 1.14
Обновления производим с помощью скриптов SWLC 1.13 и SWLC 1.14
vagrant@trusty:~$ sudo chmod +x eltex-softwlc-helper-mos_1.14.sh vagrant@trusty:~$ sudo ./eltex-softwlc-helper-mos_1.14.sh
eltex-softwlc-helper-mos_1.14.sh
Скрипт можете использовать прикрепленный к мануалу или же напрямую скачать с архива ELTEX:
vagrant@trusty:~$ wget http://archive.eltex.org/wireless/help/softwlc-1.14/eltex-softwlc-helper-mos_1.14.sh
Проверяем работу сервисов. Делаем новый snapshot и дамп БД. В случае неработоспособности сервисов делаем откат на предыдущий snapshot системы.