有了它再多的网络设备需要备份都不怕,你值得拥有

故事背景

还是从回顾历史来谈谈,网络设备备份的心血历程,刚开始管理员通过人手逐台登录到设备去操作备份配置文件,或者有些编程基础的管理员会通过编写脚本去登录设备配置文件。

如果一天领导对你说想要一个备份系统能备份思科,H3C,华为,飞塔, 就是能够支持国内常用的网络设备, 要有web界面,要能够查看配置差异对比, 还要能发邮件来显示配置差异, 嗯嗯,暂时先要这么多吧,对了公司为了成本考虑只给这个系统提供一台用来安装的虚拟机。。

而我们今天要聊的就是这样的一个系统, 而且安装配置简单,最重要开源免费 真正的大杀器 不负"最好用"之名。

oxidized 简介

oxidized 是一个网络设备备份系统, 轻量级,可扩展,支持超过90多个操作系统,个人觉得它无与伦比的优势, 同时支持h3c,华为,思科.

https://github.com/ytti/oxidized

环境搭建

环境搭建我这里介绍一个简单的方式,开箱即用的,非常简单。以下我采用docker容器化部署这个系统演示一下它的强大之处。

拓扑如下:

配置思路

  1. 确保网络设备与centos7的连通性。
  2. 配置交换机能telnet或者ssh方式登录设备。
  3. 确保centos7安装docker。
  4. 在centos7上拉起oxidized备份系统
  5. 演示oxidized备份系统功能

部署步骤

这里着重来看步骤4和步骤5的操作,其他不是今天的主角。

我的centos7已经安装好docker的环境,如果不知道如何安装的可以自行百度或者私聊我

[root@node1 ~]# docker -v
Docker version 18.06.0-ce, build 0ffa825
[root@node1 ~]#

安装好docker之后,去拉取oxidized镜像。

[root@node1 ~]# docker pull oxidized

以上命令的意思是去docker hub拉取oxidized这个镜像的最新版本

可以执行如下命令查看主机上是否有下载完的oxidized

[root@node1 ~]# docker images

前面做了那么多的铺垫,只是为这一步,千万不要走神了。执行如下命令就可以成功的部署了这个oxidized备份系统,是不是很简单呢

docker run -itd -v /data/oxidized:/root/.config/oxidized -p 8888:8888/tcp -t oxidized/oxidized

注释:-v /data/oxidized:/root/.config/oxidized 意思是把宿主机的/data/oxidized这个目录挂载到容器/root/.config/oxidized

-p 8888:8888 意思是把容器内部的8888端口映射到宿主机上的8888端口

配置oxidized

oxidized 有2个核心文件。

config文件 就用来存放配置文件

router.db文件 可以理解成 存放被管理主机的地方

可能有看官对config 配置有些疑惑 我这里简单介绍一下。

---
username: username : 用户名 这个参数不用改,会从router.db读取.
password: password : 密码 这个参数也不用改,会从router.db读取.
model: junos : 模型 这个参数也不用改,会从router.db读取.
interval: 3600 : 备份周期 单位是秒,也就是默认一个小时备份一次
log: /home/oxidized/.config/oxidized/logs/oxidized.log:日志
debug: false :debug模式
threads: 30 :线程
timeout: 20 : 超时
retries: 3 : 重试次数
prompt: !ruby/regexp /^([\w.@-]+[#>]\s?)$/
rest: 0.0.0.0:8888 :web 用到
next_adds_job: false
vars: {}
groups: {}
models: {}
pid: "/home/oxidized/.config/oxidized/pid"
input: 连接设备模式
default: ssh, telnet
debug: false
ssh:
secure: false
output: 导出配置模式
default: file
file:
directory: "/home/oxidized/.config/oxidized/configs"
source:
default: csv
csv:
file: "/home/oxidized/.config/oxidized/router.db"
delimiter: !ruby/regexp /:/
map: 这个地方和router.db里面的参数对应 从0开始
name: 0
model: 1
username: 2
password: 3
gpg: false
model_map:
cisco: ios
juniper: junos

router.db 文件格式如下,相信聪明的你应该看懂了

10.10.24.241:ios:admin:password
10.10.28.235:comware:admin:password
10.10.0.107:vrp:admin:password

好了经过以上的一番折腾后,终于完成了基本的配置。

把output 设置成git , 使用git diff 来实现对比。

值需要修改output部分的配置,就是这么的简单

output:
default: git
git:
user: Oxidized
email: o@example.com
repo: " /home/oxidized/.config/oxidized/oxidized.git "

这样就配置好了,是不是简单的不敢相信

验证结果

更多的网络设备备份,再也不怕了。你学会了吗?

欢迎添加我头条号。欢迎关注、转发、评论、收藏。或者私信我一起讨论学习。

发表评论
留言与评论(共有 0 条评论)
   
验证码:

相关文章

推荐文章

'); })();