Массовое обновление RouterOS на парке роутеров
Обновить один MikroTik просто. Обновить полсотни, половина из которых стоит за сто километров, страшно: до любой из них можно перестать доставать после перезагрузки. Разбор, что проверить заранее и в каком порядке действовать.
Чего боятся на самом деле
Страх обоснованный, но не там, где кажется.
Само обновление RouterOS редко ломает роутер. Ломает то, что вокруг: закончилось место на диске и пакет скачался наполовину, на плате осталась старая версия загрузчика, после перезагрузки поднялся интерфейс с другими настройками, провайдер на площадке выдал другой адрес. Роутер при этом жив и работает, но управлять им больше нельзя, а это то же самое, что не работает, только ехать всё равно надо.
Отсюда и правила ниже. Они не про то, как обновлять, а про то, как не оказаться с десятью недоступными точками одновременно.
Что проверить до того, как нажимать
- Свободное место. Пакету нужно место рядом с уже занятым. На платах с 16 МБ флеш-памяти это первая причина неудачи.
- Кто на какой версии сейчас. Парк почти никогда не однороден: часть точек ставили два года назад и не трогали. Обновление с 6.x на 7.x это не то же самое, что с 7.19 на 7.21.
- Канал. Для рабочих точек long-term: он получает только исправления, без новых возможностей и связанных с ними сюрпризов.
- Свежий бэкап. Двоичная копия и текстовый экспорт, снятые до установки, а не месяц назад.
- Есть ли кому доехать. Точку, до которой в ближайшую неделю никто не доберётся, лучше обновлять последней.
Почему пачками, а не всё сразу
Соблазн выбрать все сорок девять и уйти пить чай понятен, но одна неудачная точка это выезд, а десять одновременно это день работы и разговор с начальством. Разумный порядок такой: сначала две-три некритичные площадки, посмотреть результат, потом остальные пачками по пять с паузой между ними. Пауза нужна не роутерам, а вам: за две минуты видно, вернулась ли предыдущая пачка, и есть время остановиться.
Второе правило: окно обслуживания. Перезагрузка это минута-две без связи, и в магазине в это время не проходят карты. Ночь в этом смысле честнее любых объяснений постфактум.
Как это выглядит в панели
Тот же порядок, но без обхода WinBox по одному окну.
- «Проверить обновления RouterOS» на весь парк. Ничего не устанавливает, только спрашивает у каждой точки текущую и доступную версию. После этого видно, кому обновление вообще нужно.
- «Обновить RouterOS» на выбранных. Перед установкой панель снимает бэкап и экспорт на сервер, потом ждёт загрузки пакетов (по умолчанию до тридцати минут, на тонком канале дольше), перезагружает и ждёт возврата.
- Пачками по пять с паузой в две минуты — значения по умолчанию, меняются в том же окне. Можно поставить «все сразу», но это осознанное решение, а не случайность.
- Отложенный запуск на 02:00. Задача ждёт указанного времени и стартует сама.
- Результат построчно. Видно, какие три точки из сорока девяти не прошли и почему. Если после перезагрузки версия оказалась не той, которую ждали, панель говорит об этом прямо, а не рисует галочку.
Задача с результатом по каждой точке. Снимок с живого парка из 49 роутеров, названия и адреса подменены самой панелью.
Загрузчик RouterBOOT
Отдельный пункт, о котором забывают. Прошивка платы обновляется не вместе с RouterOS, а отдельной командой и ещё одной перезагрузкой. Делать это стоит только тогда, когда до точки в случае чего можно доехать: неудачное обновление загрузчика лечится netinstall, то есть кабелем и руками. В панели это отдельная галочка, по умолчанию снятая.
Если точка не вернулась
Первым делом понять, что именно молчит. Если площадка отвечает на ping, а API нет, роутер жив, и дело в сервисе или в канале: ехать не нужно. Панель разделяет эти два случая и показывает их по-разному, потому что разница между ними это несколько часов дороги.
Если молчит совсем, нужен человек на месте. Бэкап, снятый перед установкой, лежит на сервере, и восстановление сводится к загрузке файла, а не к настройке точки с нуля.
git clone https://github.com/maximdr86/tikpilot
cd tikpilot && cp .env.example .env
docker compose up -d
Частые вопросы
Можно ли откатить обновление?
На самом роутере есть /system/package/downgrade, но он
ставит предыдущую версию из тех, что лежат на диске, и работает не
всегда. Надёжнее не откатывать, а не спешить: пачки и свежий бэкап
до установки.
Какой канал выбрать?
Для рабочих точек long-term. Stable берут там, где нужна конкретная новая возможность и есть кому чинить последствия.
Нужен ли роутерам доступ в интернет?
Да, за пакетами устройство ходит на серверы MikroTik само. Панель командует, но файлы не раздаёт.
А массово запускать скрипты так же можно?
Да, это соседнее действие: скрипт хранится в библиотеке панели, запускается на выбранных точках, и по каждой видно результат. Отдельно видно, на каких точках скрипт лежит, а на каких его нет.