Jump to content

Скрипт для переноса изменений в конфигурации RouterOS по SSH


Recommended Posts

Posted (edited)

По рабочей необходимости написал скрипт для копирования изменений в конфигурации с одного устройства RouterOS на другое по SSH. Мне понадобилось найти решение для автоматической синхронизации конфигов двух роутеров, работающих как кластер VRRP, и т.к. ничего подходящего найти не удалось, создал свое.

 

Логика работы в первом приближении следующая: скрипт подключается к роутерам по ssh, получает конфиги с помощью команды 'export', сравнивает их между собой и конструирует скрипт, который описывает только изменения, после чего через ssh выполняет его на целевом роутере. Предусмотрена возможность работать только с определенными секциями конфигурации, а также игнорировать помеченные специальным комментарием линии. Кроме того, вместо работы напрямую через ssh можно считывать конфигурации из файлов и записывать в них.

 

Скрипт написан на Perl, для работы требуется linux, стандартные утилиты и модули Perl, а также либо модуль Net::SSH::Perl, либо утилиты ssh и sshpass (в последнем случае отображение вывода ошибок роутера работает хуже).

 

Возможно кому-нибудь это пригодится, исходник здесь - https://github.com/dsterentyev/mt_sync/

Edited by msdt
Posted (edited)
52 минуты назад, Saab95 сказал:

А зачем на микротике VRRP?

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

 

5 часов назад, McSea сказал:

@msdt 

Есть такой проект: High availability code for Mikrotik routers (емнип там ничего кроме 2 микротиков не нужно)

Также тема про него на оф. форуме.

Именно для VRRP у меня тоже есть скрипты, которые отслеживают состояние VRRP интерфейсов, и предотвращают ситуацию, когда VRRP на разных физических интерфейсах оказываются на разных роутерах, но они плотно "завязаны" на конкретную сетевую конфигурацию, поэтому вряд ли могут быть использованы где-то еще.

Edited by msdt
Posted (edited)
4 часа назад, VolanD666 сказал:

Зачем пилить свои лесопеды, если есть ансибл?

Есть два микротика, один из которых основной, другой резервный. Основной я настраиваю любым удобным мне способом. Через промежуток времени, заданный в cron, на резервный накатываются те настройки, что были сделаны на основном. При этом учитывается, что какие-то секции или конкретные настройки в них защищены от изменения (аналог модификатора protect в Junos). Также при этом переносятся только реально сделанные изменения, а не вся конфигурация целиком. Как бы Ansible помог бы решить данную задачу?

Edited by msdt
Posted

В других темах пишут что винбокс плохо, а тут проблема один настроить и после на второй конфигурацию перенести. Но что мешает сразу на оба команды отправить одинаковые и сразу иметь общие настройки без необходимости что-то переносить?

Posted
4 часа назад, Saab95 сказал:

В других темах пишут что винбокс плохо, а тут проблема один настроить и после на второй конфигурацию перенести. Но что мешает сразу на оба команды отправить одинаковые и сразу иметь общие настройки без необходимости что-то переносить?

автоматизация

Posted (edited)
10 hours ago, msdt said:

Именно для VRRP у меня тоже есть скрипты

Вы посмотрели что там ? Это скрипты, синхронизирующие конфигурацию двух одинаковых микротиков, т.е. примерно то, что вы делали - для

Quote

автоматической синхронизации конфигов двух роутеров, работающих как кластер VRRP

 

Edited by McSea
Posted
В 12.02.2020 в 21:43, McSea сказал:

Вы посмотрели что там ? Это скрипты, синхронизирующие конфигурацию двух одинаковых микротиков, т.е. примерно то, что вы делали - для

Насколько я понял, там все заточено под конкретную задачу создания VRRP-кластера, и конфиг просто полностью копируется с активного устройства на бэкапное. Тот скрипт, который я сделал, позволяет манипулировать конфигами более избирательно.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.