我正在寻找一种方法来备份、保存、版本化和恢复思科网络设备配置。
我需要能够在许多路由器和交换机上自动获取和推送配置文件。
我正在寻找某种 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/
这是一个用于向许多思科设备发送命令的预期脚本。
它允许您传递一个文件,其中包含所有设备的名称以及您想要在设备上执行的命令。
我每晚只需将其 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 ---
这将创建一个名为的配置文件路由器x.20130707
如果你改变
DATE=`date +%Y%m%d`
到
DATE=`date +%w`
您将拥有连续 7 天的配置窗口 路由器 x.1,路由器 x.2,..路由器 x.7
上面是一个非常简化的示例,但这主要是我所做的。我实际上有一个“config-backup.sh”和一个“config-restore.sh”。
每个脚本都接受一个文件名参数,该文件名中填入了设备名称,第二个参数是“YYYYMMDD”格式的日期。如果是备份,它会将日期附加到配置文件名中。如果是恢复,它会告诉设备加载“$HOST.$DATE”。
我使用 cron 运行备份。
有了它,我只需通过手机上的 SSH 即可轻松恢复任何内容。