Данный метод подходит только для условий недостатка ресурсов и разворачивания контроллера на физическом сервере, а не на виртуальной машине.
Перед обновлением необходимо обязательно сделать резервную копию виртуальной машины на случай необходимости восстановления.
Если во время обновления что-то пойдет не так, а сервис нужно будет быстро восстановить, то запускаете клон рабочей ВМ.
Обратите внимание, что обновление контроллера рекомендуется проводить в нерабочее время, так как будет перерыв в работе сервисов.
Подготовка к обновлению
Перед обновлением сделайте дамп БД и желательно сделать snapshot системы для возможного отката в случае неудачного обновления.
Выполните backUP БД и конфигурационных файлов.
Установите пакет pv перед сохранением БД и запуском скрипта.
На вход скрипта требуется подать login/password от БД.
sudo apt install pv sudo chmod +x backup_mysql.sh sudo ./backup_mysql.sh root root sudo chmod +x mongo_update.sh sudo ./mongo_update.sh --backup
BackUP базы данных работоспособен только для вашей текущей версии SoftWLC. Условно говоря, backup от SoftWLC версии 1 не подойдет к SoftWLC версии 2.
Во время обновления в консоли Вам будут предложены варианты действий с конфигурационными файлами и базами данных.
Отключение автоматических обновлений для MySQL
Останавливаем все будущие обновления mysql с помощью следующих команд:
sudo apt-mark hold mysql-client sudo apt-mark hold mysql-community-client sudo apt-mark hold mysql-community-server
Необходимо добавить следующую конфигурацию в файл /etc/apt/preferences.d/mysql:
sudo nano /etc/apt/preferences.d/mysql
Добавляем следующие строки в файл, чтобы приостановить обновление MySQL и все связанные с ним пакеты:
Package: mysql-server
Pin: version 5.7*
Pin-Priority: 1001
Package: mysql-client
Pin: version 5.7*
Pin-Priority: 1001
Package: mysql-community-server
Pin: version 5.7*
Pin-Priority: 1001
Package: mysql-community-client
Pin: version 5.7*
Pin-Priority: 1001
Package: libmysqlclient-dev
Pin: version 5.7*
Pin-Priority: 1001
Поиск и установка обновлений пакетов
sudo apt update ... Reading package lists... Done Building dependency tree Reading state information... Done
sudo apt upgrade ... After this operation, 7694 kB of additional disk space will be used. Do you want to continue? [Y/n] Y ... update-initramfs: deferring update (trigger activated) Processing triggers for initramfs-tools (0.130ubuntu3.13) ... update-initramfs: Generating /boot/initrd.img-4.15.0-213-generic
Далее, необходимо перезагрузить сервер:
sudo reboot
Обновление версии ОС
Для обновления ubuntu 18 до ubuntu 20 воспользуйтесь следующей командой:
sudo do-release-upgrade ... If you continue, an additional ssh daemon will be started at port '1022'. Do you want to continue? Continue [yN] Y ... To continue please press [ENTER] ENTER ... Some third party entries in your sources.list were disabled. You can re-enable them after the upgrade with the 'software-properties' tool or your package manager. To continue please press [ENTER] ENTER ... Installing the upgrade can take several hours. Once the download has finished, the process cannot be canceled. Continue [yN] Details [d] Y ...
В ходе обновления будут предложены следующие вопросы от системы:
... Configuration file '/etc/rsyslog.conf' ==> Modified (by you or by a script) since installation. ==> Package distributor has shipped an updated version. What would you like to do about it ? Your options are: Y or I : install the package maintainer's version N or O : keep your currently-installed version D : show the differences between the versions Z : start a shell to examine the situation The default action is to keep your current version. *** rsyslog.conf (Y/I/N/O/D/Z) [default=N] ? n ... Configuration file '/etc/rsyslog.conf' ==> Modified (by you or by a script) since installation. ==> Package distributor has shipped an updated version. What would you like to do about it ? Your options are: Y or I : install the package maintainer's version N or O : keep your currently-installed version D : show the differences between the versions Z : start a shell to examine the situation The default action is to keep your current version. *** rsyslog.conf (Y/I/N/O/D/Z) [default=N] ? n ... Configuration file '/etc/snmp/snmpd.conf' ==> Modified (by you or by a script) since installation. ==> Package distributor has shipped an updated version. What would you like to do about it ? Your options are: Y or I : install the package maintainer's version N or O : keep your currently-installed version D : show the differences between the versions Z : start a shell to examine the situation The default action is to keep your current version. *** snmpd.conf (Y/I/N/O/D/Z) [default=N] ? n ...
... Remove obsolete packages? 97 packages are going to be removed. Continue [yN] Details [d]n ... Restart required To finish the upgrade, a restart is required. If you select 'y' the system will be restarted. Continue [yN] y
Проверяем, что версия ОС изменилась:
cat /etc/lsb-release ... DISTRIB_ID=Ubuntu DISTRIB_RELEASE=20.04 DISTRIB_CODENAME=focal DISTRIB_DESCRIPTION="Ubuntu 20.04.6 LTS"
После обновления, выполните рестарт все сервисов eltex:
sudo systemctl restart eltex-*.service
План обновления ub20->ub22 точно такой же, как ub18->ub20.