首页 > 代码库 > 网络设备配置管理与版本控制
网络设备配置管理与版本控制
网络设备配置管理与版本控制
http://netkiller.github.io/journal/network.ios.html
Mr. Neo Chen (陈景峰), netkiller, BG7NYT
中国广东省深圳市龙华新区民治街道溪山美地
518131
+86 13113668890
+86 755 29812080
<netkiller@msn.com>
版权声明
转载请与作者联系,转载时请务必标明文章原始出处和作者信息及本声明。
|
|
2014-12-26
2014-12-24
Netkiller Architect 手札 | Netkiller Developer 手札 | Netkiller PHP 手札 | Netkiller Python 手札 | Netkiller Testing 手札 |
Netkiller Cryptography 手札 | Netkiller Linux 手札 | Netkiller Debian 手札 | Netkiller CentOS 手札 | Netkiller FreeBSD 手札 |
Netkiller Shell 手札 | Netkiller Security 手札 | Netkiller Web 手札 | Netkiller Monitoring 手札 | Netkiller Storage 手札 |
Netkiller Mail 手札 | Netkiller Docbook 手札 | Netkiller Version 手札 | Netkiller Database 手札 | Netkiller PostgreSQL 手札 |
Netkiller MySQL 手札 | Netkiller NoSQL 手札 | Netkiller LDAP 手札 | Netkiller Network 手札 | Netkiller Cisco IOS 手札 |
Netkiller H3C 手札 | Netkiller Multimedia 手札 | Netkiller Perl 手札 | Netkiller Amateur Radio 手札 | Netkiller DevOps 手札 |
- 1. 背景
- 2. 怎样实现网络设备配置管理
- 3. 总结
1. 背景
我们经常会频繁的配置网络设备,但有时候做了某些操作出现了异常,我们不清楚问题出在哪里,还原配置也不起作用,甚至你根本记得你改动了什么。
另外我们希望能够监控网络设备的配置变化,一个公司可能有很多网络工程师,他们都有权限操作路由交换或防火墙设备,我们要知道网络设备配置什么时候发生了变化,并通知其他几位同事。同时我们要对修改操作记录归档,方便日后查阅。
2. 怎样实现网络设备配置管理
我们每隔一段时间便将网络设备的配置导出存档,然后通过版本控制工具进行版本化管理,远离非常简单。
有了版本控制我们可能很方便的回撤操作。下面我来详细讲解怎样安装于配置该软件
$ git clone https://github.com/netkiller/logging.git $ cd logging $ python3 setup.py sdist $ python3 setup.py install $ sudo apt-get install expect $ sudo chmod +x /usr/local/libexec/*
配置网络设备地址
打开 /usr/local/bin/cisco 文件,修改BACKUP_DIR,改为你的备份目录
$ vim /usr/local/bin/cisco CFGFILE=$BASEDIR/etc/cisco.conf BACKUP_DIR=~/.backup $ cat /usr/local/etc/cisco.conf 192.168.50.1 mgmt EBopQ1X2vMkrl M8YJxvDiddG6QK 192.168.50.2 mgmt EBopQ1X2vMkrl M8YJxvDiddG6QK 192.168.50.3 mgmt EBopQ1X2vMkrl M8YJxvDiddG6QK 192.168.50.4 mgmt EBopQ1X2vMkrl M8YJxvDiddG6QK $ sudo chmod 600 /usr/local/etc/cisco.conf
编辑/usr/local/etc/cisco.conf文件,格式如下:
host | username | password | enable password
初始化版本仓库
# Initialized empty Git repository in local. $ cisco init # Initialized empty Git repository from remote. $ cisco init http://xxx.xxx.xxx.xxx/project/xxxx.git $ cisco init user@host:/project/xxxx.git
启动,停止等操作
$ cisco Usage: /usr/local/bin/cisco {init|start|stop|status|restart} # cisco start # cisco stop
查看网络设备配置变化
查看当前与上一个版本的变化
$ cd your_backup_dir $ git diff HEAD HEAD~ route.running-config
查看当前与前面第三个版本的变化
$ cd your_backup_dir $ git diff HEAD HEAD~3 route.running-config
3. 总结
该程序主要是备份网络设备的配置文件,当然也能起到监控做用,但备份间隔时间需要根据你的情况设定,如果太频繁也不太好,间隔太长可能起不到很好的监控作用。
关于监控与报警,你可以通过git diff 命令对比与上次配置文件的变化,通常是没有变化的,一旦发生变化便通过电子邮件与短信发出警报。至于怎么实现,不再本文讨论范围,有兴趣可以参考笔者的其他技术手札。
关于版本控制软件更多细节,延伸阅读《Netkiller Version 手札》
网络设备配置管理与版本控制