OS: "RouterOS 5/6".
Задача: обновить программное обеспечение маршрутизатора "MikroTik", пользуясь инструментарием командной строки такового (CLI).
Рассмотрим два способа получения и применения дистрибутивов, исходя из того, что на этапе настройки или в сетях со строгими ограничениями прямой доступ в интернет может отсутствовать, но к устройству возможно подключение как по FTP для загрузки дистрибутивов, так и управление им по SSH/RS-232 - ручной и полуавтоматической.
Предварительный сбор сведений об установленном ПО.
Выясняем текущую версию "RouterOS":
> /system resource print
....
version: 6.40.8 (bugfix)
....
version: 6.40.8 (bugfix)
....
Выясняем текущую версию загрузчика ОС (начиная примерно с v.6.41 "RouterOS" номера версии ОС и загрузчика синхронизировали):
> /system routerboard print
....
current-firmware: 3.41
current-firmware: 3.41
Уточняем версии функциональных модулей - каждый из них может обновляться отдельно, при желании:
> /system package print
0 routeros-mipsbe 6.40.8
1 system 6.40.8
....
10 advanced-tools 6.40.8
1 system 6.40.8
....
10 advanced-tools 6.40.8
Обновление ПО устройства, не имеющего доступа в интернет.
Идём на сайт производителя (https://www.mikrotik.com/download) и на странице загрузки ищем подходящее к нашей аппаратной платформе программное обеспечение:
Аппаратная платформа: MIPSBE;
Перечень устройств: CRS1xx, CRS2xx, DISC, FiberBox, hAP, hAP ac, hAP ac lite, LDF, LHG, ltAP mini, mANTBox, mAP, NetBox, NetMetal, PowerBox, PWR-Line, QRT, RB9xx, SXTsq, cAP, hEX Lite, RB4xx, wAP, BaseBox, DynaDish, RB2011, SXT, OmniTik, Groove, Metal, Sextant, RB7xx.
Перечень устройств: CRS1xx, CRS2xx, DISC, FiberBox, hAP, hAP ac, hAP ac lite, LDF, LHG, ltAP mini, mANTBox, mAP, NetBox, NetMetal, PowerBox, PWR-Line, QRT, RB9xx, SXTsq, cAP, hEX Lite, RB4xx, wAP, BaseBox, DynaDish, RB2011, SXT, OmniTik, Groove, Metal, Sextant, RB7xx.
К скачиванию предлагается два варианта:
"Main package" - дистрибутив ОС в сборе с модулями;
"Extra packages" - набор функциональных модулей, для обновления по отдельности.
"Extra packages" - набор функциональных модулей, для обновления по отдельности.
На практике удобнее обновлять всё одним махом, используя "Main package".
Со включённой в интернет рабочей станции скачиваем нужные дистрибутивы и посредством FTP загружаем их в корень файловой системы устройства дистрибутив "Main package". Удостоверяемся, что файл корректно загружен:
> /file print
# NAME TYPE SIZE
1 routeros-mipsbe-6.43.8.npk package 10.4MiB ...
1 routeros-mipsbe-6.43.8.npk package 10.4MiB ...
Отдаём команду перезагрузки операционной системы:
> /system reboot
Сразу после остановки сервисов система проверит обнаруженный дистрибутив и установит его, замещая имеющуюся ОС:
verified routeros-mipsbe-6.43.8.npk
installed routeros-mipsbe-6.43.8
Restarting system.
installed routeros-mipsbe-6.43.8
Restarting system.
После перезапуска проверяем, какая теперь версия ОС в работе:
> /system resource print
....
version: 6.43.8 (stable)
....
version: 6.43.8 (stable)
....
Загрузчик операционной системы пока не обновлён, но обнаружен дистрибутив его новой версии, готовый к установке взамен имеющегося (автоматически он не обновляется, во избежание):
> /system routerboard print
....
current-firmware: 3.41
upgrade-firmware: 6.43.8
current-firmware: 3.41
upgrade-firmware: 6.43.8
Явно указываем обновить загрузчик ОС:
> /system routerboard upgrade
Do you really want to upgrade firmware? [y/n]
... Firmware upgraded successfully, please reboot for changes to take effect!
... Firmware upgraded successfully, please reboot for changes to take effect!
Перезагружаемся, чтобы удостоверится в успешном обновлении загрузчка операционной системы:
> /system reboot
Обновление ПО устройства, включённого в интернет.
Непосредственно с устройства запрашиваем сведения о доступной к обновлению на сайте разработчиков (насколько я уловил, делается это подкапотным API, обращающимся к зафиксированному в коде ОС сайту "upgrade.mikrotik.com") версии "RouterOS":
> /system package update check-for-updates
channel: current
current-version: 6.40.8
latest-version: 6.43.8
current-version: 6.40.8
latest-version: 6.43.8
Запуск процедуры обновления ОС до свежайшей доступной версии элементарен:
> /system package update download
После загрузки дистрибутива (в общем то же, что мы делали бы вручную по инструкции выше), нам будет предложено перезагрузить устройство для запуска такового уже на новом программном обеспечении:
> /system reboot
Как объяснялось выше, загрузчик ОС не обновляется автоматически, так что отдельно даём указание сделать это - после чего снова перезагружаемся:
> /system routerboard upgrade
> /system reboot
> /system reboot
Итоговая проверка.
Пробегаемся по первому этапу предварительного сбора сведений об установленном ПО и удостоверяемся, что таковое успешно обновилось.
Если что-то идёт не так, следует смотреть в журнал событий:
> /log print without-paging