Tikpilot

Массовое обновление RouterOS на парке роутеров

Обновить один MikroTik просто. Обновить полсотни, половина из которых стоит за сто километров, страшно: до любой из них можно перестать доставать после перезагрузки. Разбор, что проверить заранее и в каком порядке действовать.

Чего боятся на самом деле

Страх обоснованный, но не там, где кажется.

Само обновление RouterOS редко ломает роутер. Ломает то, что вокруг: закончилось место на диске и пакет скачался наполовину, на плате осталась старая версия загрузчика, после перезагрузки поднялся интерфейс с другими настройками, провайдер на площадке выдал другой адрес. Роутер при этом жив и работает, но управлять им больше нельзя, а это то же самое, что не работает, только ехать всё равно надо.

Отсюда и правила ниже. Они не про то, как обновлять, а про то, как не оказаться с десятью недоступными точками одновременно.

Что проверить до того, как нажимать

Почему пачками, а не всё сразу

Соблазн выбрать все сорок девять и уйти пить чай понятен, но одна неудачная точка это выезд, а десять одновременно это день работы и разговор с начальством. Разумный порядок такой: сначала две-три некритичные площадки, посмотреть результат, потом остальные пачками по пять с паузой между ними. Пауза нужна не роутерам, а вам: за две минуты видно, вернулась ли предыдущая пачка, и есть время остановиться.

Второе правило: окно обслуживания. Перезагрузка это минута-две без связи, и в магазине в это время не проходят карты. Ночь в этом смысле честнее любых объяснений постфактум.

Как это выглядит в панели

Тот же порядок, но без обхода WinBox по одному окну.

  1. «Проверить обновления RouterOS» на весь парк. Ничего не устанавливает, только спрашивает у каждой точки текущую и доступную версию. После этого видно, кому обновление вообще нужно.
  2. «Обновить RouterOS» на выбранных. Перед установкой панель снимает бэкап и экспорт на сервер, потом ждёт загрузки пакетов (по умолчанию до тридцати минут, на тонком канале дольше), перезагружает и ждёт возврата.
  3. Пачками по пять с паузой в две минуты — значения по умолчанию, меняются в том же окне. Можно поставить «все сразу», но это осознанное решение, а не случайность.
  4. Отложенный запуск на 02:00. Задача ждёт указанного времени и стартует сама.
  5. Результат построчно. Видно, какие три точки из сорока девяти не прошли и почему. Если после перезагрузки версия оказалась не той, которую ждали, панель говорит об этом прямо, а не рисует галочку.
Список задач: массовое обновление RouterOS с результатом по каждому устройству

Задача с результатом по каждой точке. Снимок с живого парка из 49 роутеров, названия и адреса подменены самой панелью.

Загрузчик RouterBOOT

Отдельный пункт, о котором забывают. Прошивка платы обновляется не вместе с RouterOS, а отдельной командой и ещё одной перезагрузкой. Делать это стоит только тогда, когда до точки в случае чего можно доехать: неудачное обновление загрузчика лечится netinstall, то есть кабелем и руками. В панели это отдельная галочка, по умолчанию снятая.

Если точка не вернулась

Первым делом понять, что именно молчит. Если площадка отвечает на ping, а API нет, роутер жив, и дело в сервисе или в канале: ехать не нужно. Панель разделяет эти два случая и показывает их по-разному, потому что разница между ними это несколько часов дороги.

Если молчит совсем, нужен человек на месте. Бэкап, снятый перед установкой, лежит на сервере, и восстановление сводится к загрузке файла, а не к настройке точки с нуля.

git clone https://github.com/maximdr86/tikpilot
cd tikpilot && cp .env.example .env
docker compose up -d
Подробнее про установку Код на GitHub MIT · Python · без облака · работает в сети без интернета

Частые вопросы

Можно ли откатить обновление?

На самом роутере есть /system/package/downgrade, но он ставит предыдущую версию из тех, что лежат на диске, и работает не всегда. Надёжнее не откатывать, а не спешить: пачки и свежий бэкап до установки.

Какой канал выбрать?

Для рабочих точек long-term. Stable берут там, где нужна конкретная новая возможность и есть кому чинить последствия.

Нужен ли роутерам доступ в интернет?

Да, за пакетами устройство ходит на серверы MikroTik само. Панель командует, но файлы не раздаёт.

А массово запускать скрипты так же можно?

Да, это соседнее действие: скрипт хранится в библиотеке панели, запускается на выбранных точках, и по каждой видно результат. Отдельно видно, на каких точках скрипт лежит, а на каких его нет.

Открыть файл в полном размере