分享

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

 泰山勇士 2019-07-06

故事背景

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

如果一天领导对你说想要一个备份系统能备份思科,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 -vDocker 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: falseoutput: 导出配置模式 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: falsemodel_map: cisco: ios juniper: junos

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

10.10.24.241:ios:admin:password10.10.28.235:comware:admin:password10.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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多