故事背景还是从回顾历史来谈谈,网络设备备份的心血历程,刚开始管理员通过人手逐台登录到设备去操作备份配置文件,或者有些编程基础的管理员会通过编写脚本去登录设备配置文件。 如果一天领导对你说想要一个备份系统能备份思科,H3C,华为,飞塔, 就是能够支持国内常用的网络设备, 要有web界面,要能够查看配置差异对比, 还要能发邮件来显示配置差异, 嗯嗯,暂时先要这么多吧,对了公司为了成本考虑只给这个系统提供一台用来安装的虚拟机。。 而我们今天要聊的就是这样的一个系统, 而且安装配置简单,最重要开源免费 真正的大杀器 不负'最好用'之名。 oxidized 简介oxidized 是一个网络设备备份系统, 轻量级,可扩展,支持超过90多个操作系统,个人觉得它无与伦比的优势, 同时支持h3c,华为,思科. https://github.com/ytti/oxidized 环境搭建环境搭建我这里介绍一个简单的方式,开箱即用的,非常简单。以下我采用docker容器化部署这个系统演示一下它的强大之处。 拓扑如下: 配置思路
部署步骤这里着重来看步骤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
配置oxidizedoxidized 有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 ' 这样就配置好了,是不是简单的不敢相信 验证结果 更多的网络设备备份,再也不怕了。你学会了吗? |
|