Как выполнить резервное копирование и восстановление конфигураций на множестве маршрутизаторов и коммутаторов Cisco из Linux?
Я ищу способ резервного копирования, сохранения, версии и восстановления конфигураций сетевого оборудования Cisco.
Мне нужно иметь возможность автоматически получать и толкать файлы конфигурации на многих маршрутизаторах и коммутаторах.
Я ищу какую-то альтернативу Linux Orion
чтобы я мог:
- Автоматически получать конфигурацию с устройства при его изменении (инициируется системным журналом)
- Сохраните каждую версию конфигурации
- Нажмите конфигурацию на одном устройстве
- Выдвиньте конфигурацию на кучу устройств в сценарии
Поэтому я взглянул на то, что может показаться хорошим решением, и не нашел ничего, что соответствовало бы этим критериям. Очень странно, что нет Linux, созданного для этих нужд.
Вот что я нашел:
- Rancid - это хороший скрипт, который может получить конфигурации и сохранить каждую версию в репозитории CVS или SVN
- Syslog-ng может помочь мне сказать Rancid снова проверить конфигурацию устройства при отправке системного журнала
- CVS/SVN/Git/ Все, что может достичь версионности и обеспечить хорошие различия
- Я мог бы выдвинуть конфиги с помощью clogin (Rancid), но это совсем не приятно
- Я мог бы выдвинуть конфиги с TFTP, но мне пришлось бы написать его (в основном для массового развертывания).
Мне не хватает инструмента, обеспечивающего функциональность, в которой я нуждаюсь? Странно, что его нет в Linux.
Спасибо за вашу помощь:)
1 ответ
Это то, что, как я обнаружил, было самым простым в управлении... хотя это немного грубо, особенно для людей, которым не нравится CLI.
http://sourceforge.net/projects/cosi-nms/files/ciscocmd/
Это ожидаемый сценарий, используемый для отправки команд на множество устройств Cisco.
Это позволяет вам передать файл с именем всех ваших устройств и командами, которые вы хотите выполнить на устройствах.
У меня просто есть tftp конфиги на наш центральный сервер конфигурации tftp по ночам.
copy system:running-config tftp://mytftpserver/this-router-config
Для восстановления вы можете просто применить:
copy tftp://mytftpserver/this-router-config system:running-config
Простым примером будет иметь файл с именем "myrouters"
--- CUT ---
#!/bin/sh
DATE=`date +%Y%m%d`
for THISHOST in `cat myrouters`
do
ciscocmd [auth params] -c "copy system:running-config tftp://mytftpserver/$THISHOST.$DATE"
done
--- CUT ---
Это создает файл конфигурации с именем routerx.20130707
Если вы измените
DATE=`date +%Y%m%d`
в
DATE=`date +%w`
у вас просто будет скользящее 7-дневное окноконфигов routerx.1, routerx.2, .. routerx.7
Выше приведен очень упрощенный пример, но это в основном то, что я делаю. У меня на самом деле есть "config-backup.sh" и "config-restore.sh".
Каждый скрипт принимает параметры имени файла, заполненного именами устройств, а вторым параметром является дата в "ГГГГММДД". Если это резервная копия, она добавляет дату к имени файла конфигурации. Если это восстановление, оно сообщает устройствам загрузить "$HOST.$DATE".
Я запускаю резервные копии из cron.
С этим я могу очень легко восстановить что-нибудь только с SSH с моего телефона.