网络设备配置管理与版本控制

网络设备配置管理与版本控制

http://netkiller.github.io/journal/network.ios.html

Mr. Neo Chen (陈景峰), netkiller, BG7NYT

中国广东省深圳市龙华新区民治街道溪山美地
518131
+86 13113668890
+86 755 29812080
<[email protected]>

版权声明

转载请与作者联系,转载时请务必标明文章原始出处和作者信息及本声明。

文档出处:
http://netkiller.github.io
http://netkiller.sourceforge.net

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. 怎样实现网络设备配置管理

我们每隔一段时间便将网络设备的配置导出存档,然后通过版本控制工具进行版本化管理,远离非常简单。

有了版本控制我们可能很方便的回撤操作。下面我来详细讲解怎样安装于配置该软件

$ 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 [email protected]:/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 手札》

时间: 2024-07-28 16:25:54

网络设备配置管理与版本控制的相关文章

版本控制——总结

1.定义 版本控制(Revision control)是一种软体工程技巧,籍以在开发的过程中,确保由不同人所编辑的同一档案都得到更新. 2.原理 版本控制透过文档控制(documentation control)记录程序各个模组的改动,并为每次改动编上序号.这种方法是工程图(engineering drawings)维护(maintenance)的标准做法, 它伴随着工程图从图的诞生一直到图的定型. 一种简单的版本控制形式,例如,赋给图的初版一个版本等级“A”.当做了第一次改变后,版本等级改为“

软件构造 第二章 第一节 软件生命周期和版本控制

软件构造第二章 第一节 软件生命周期和版本控制 基本内容 Software Development Lifecycle (SDLC) Traditional software process models (waterfall, incremental, V- model, prototyping, spiral) Agile development and eXtreme Programming (XP) Collaborative software development Software

2017.4.5 OpenStack简介

OpenStack 管理的资源不是单机的而是一个分布的系统,把分布的计算.存储.网络.设备.资源组织起来,形成一个完整的云计算系统:OpenStack 也提供一个 UI,这里包括一个图形化的 UI:Horizon,也提供命令行的界面,还提供了一套 API 支持用户开发自己的软件- OpenStack是什么? OpenStack是一套框架,有下面这两个特点: 它是一个中间层,可以创建.管理和销毁虚拟机,但是要完成这些操作需要依赖于第三方的 Hypervisor,通过这个 Hypervisor 去完

【转】软件工程研究领域最顶级的两个期刊

[1] IEEE Transactions on Software Engineering (IEEE T SOFTWARE ENG, 简称TSE) 中文名:IEEE软件工程汇刊 出版社:IEEE,1975年创刊 期刊网址:http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=32 http://www.computer.org/portal/web/tse/home 影响因子(Impact Factor):2.588 (2013):JC

计算机必读书籍

漫长的三年过去了,我们摸爬滚打,没有指路的明灯.我也在摸索中走了不少的弯路,向我的软件班的同学引荐别人推荐几本好书(我也是在查漏补缺),希望有志者能少走些弯路. 一. 科学哲学和管理哲学[1] “程序开发心理学”(The Psychology of Computer Programming : Silver Anniversary Edition)[2] “系统化思维导论”(An Introduction to Systems Thinking, Silver Anniversary Editi

Linux新手必看:浅谈如何学习linux

本文在Creative Commons许可证下发布 一.起步 首先,应该为自己创造一个学习linux的环境--在电脑上装一个linux或unix问题1:版本的选择 北美用redhat,欧洲用SuSE,桌面mandrake较多,而debian是技术最先进的,linux开发人员中用debian的最多,其次是redhat,从全球linux各应用领域市场份额来看无疑redhat是最多的,此外还有很多出名的发行版本,不再列举.原则是:我们没有必要把时间浪费在"装系统"上而应集中精力学习最有用的东

OpenStack入门之初步认识

一.OpenStack 入门 之 基础知识 二.OpenStack 入门 之 基本组件 三.OpenStack 入门 之 各组件解析(基础) 四.OpenStack 入门 之 各组件解析(进阶) 五.OpenStack 入门 之 实际操作 六.OpenStack 入门 之 扩展话题 七.OpenStack 入门 之 若干讨论 写在前面 从 OpenStack 基础知识开始学起,剖析 OpenStack 架构,分析 OpenStack 的各个组件的功能.原理和使用方法,通过实战演练来掌握 Open

OpenStack入门 之 初步认识

从 OpenStack 基础知识开始学起,剖析 openstack 架构,分析 OpenStack 的各个组件的功能.原理和使用方法,通过实战演练来掌握 OpenStack 的部署和操作.为今后学习 OpenStack 的高级课程以及基于 OpenStack 构建企业级云计算系统打下基础. 在接下来的几天里,我将会学到以下主要内容: OpenStack 基础知识 OpenStack 各组件间的关系社交网络挖掘算法与实践 OpenStack 各组件解析(基础) OpenStack 各组件解析(进阶

一、OpenStack入门 之 初步认识

OpenStack入门 之 初步认识 写在前面 从 OpenStack 基础知识开始学起,剖析 OpenStack 架构,分析 OpenStack 的各个组件的功能.原理和使用方法,通过实战演练来掌握 OpenStack 的部署和操作.为今后学习 OpenStack 的高级课程以及基于 OpenStack 构建企业级云计算系统打下基础. 在接下来的几天里,我将会学到以下主要内容: OpenStack 基础知识 OpenStack 各组件间的关系社交网络挖掘算法与实践 OpenStack 各组件解