我需要能够在许多路由器和交换机上自动GET和PUSH配置文件.
我正在寻找Orion的某种替代品,所以我可以:
>更改时自动从设备获取配置(由syslog触发)
>保存配置的每个版本
>在单个设备上推送配置
>以脚本方式在一堆设备上推送配置
所以我看了一下看起来很不错的解决方案,我发现没有什么能满足这些标准.很奇怪,没有针对这些需求构建的Linux产品.
这是我发现的:
> Rancid是一个很好的脚本,可以获得配置并保存CVS或SVN存储库中的每个版本
> Syslog-ng可以帮助我告诉Rancid在发送系统日志时再次检查设备的配置
> CVS / SVN / Git /无论什么可以实现版本化并提供不错的差异
>我可以用clogin(Rancid)推动配置,但这并不好看
>我可以使用TFTP推送配置,但我必须编写脚本(主要用于大规模部署).
我错过了一个提供我需要的功能的工具吗?奇怪的是它在Linux上不存在.
谢谢你的帮助 :)
解决方法
http://sourceforge.net/projects/cosi-nms/files/ciscocmd/
这是一个用于向许多cisco设备发送命令的expect脚本.
它允许您传入一个文件,其中包含所有设备的名称以及要在设备上执行的命令.
我只是每晚都有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”.
每个脚本都使用填充了设备名称的文件名的参数,第二个参数是“YYYYMMDD”中的日期.如果是备份,则会将日期附加到配置文件名.如果是恢复,它会告诉设备加载“$HOST.$DATE”.
我从cron运行备份.
有了这个,我可以很容易地从我的手机恢复任何东西.