Oxidized-20180912-docker 版本的网络设备备份系统
ProblemOxidized 非常好用,基本兼容所有网络设备的备份,但是有一个小小小小的问题,就是在 Linux 环境下,默认安装的 Ruby 版本问题为其在离线情况下的安装增添了很多的麻烦和限制。于是轻量级的 docker 成了不二的选择。(直接安装版本可以参考如下:)1. oxidized 最好用的网络设备备份系统2. oxidized 最好用的网络设备备份系统(二)...
Problem
Oxidized 非常好用,基本兼容所有网络设备的备份,但是有一个小小小小的问题,就是在 Linux 环境下,默认安装的 Ruby 版本问题为其在离线情况下的安装增添了很多的麻烦和限制。
于是轻量级的 docker 成了不二的选择。
(直接安装版本可以参考如下:)
1. oxidized 最好用的网络设备备份系统
2. oxidized 最好用的网络设备备份系统(二)
3. oxidized 最好用的网络设备备份系统(三)
(官方参考如下:)
1. Oxidized - Docker Hub
2. Oxidized - Github
Solution
意思意思搜一下看看oxidized都有哪些别人已经封装并上传的镜像:
appledeMacBook-Pro-3:oxidized xxx$ docker search oxidized
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
oxidized/oxidized Oxidized 13 [OK]
alectolytic/oxidized Oxidized: Alpine Linux based Docker image 1 [OK]
dbrockus/oxidized This is a TEST, DO NO USE 0
b3vis/oxidized Oxidized config backup software in an Alpi... 0 [OK]
neteng1/oxidized Backup Network Devices 0
darkounet/docker-oxidized 0 [OK]
edeln/oxidized oxidized as a framework, using its ssh and... 0
macaty/oxidized oxidized 0 [OK]
ossobv/oxidized Edited oxidized (ios.rb) so you can use re... 0
voravitl/oxidized 0
zxandy/oxidized Oxidized - Configuration backup software h... 0
klinnex/oxidized Oxidized 0 [OK]
samkdocker/oxidized 0
talibaiiika/oxidized 0
xrlx/graphite-rust Oxidized graphite stack 0 [OK]
sfoster/oxidized Docker Oxidized auto build 0 [OK]
把官方的 oxidized/oxidized 镜像拉下来:
appledeMacBook-Pro-3:oxidized xxx$ docker pull oxidized/oxidized:latest
嗯,镜像比较大,要下很久很久….
然后 run 就可以了!(假的,还要配置文件呢!)
appledeMacBook-Pro-3:oxidized xxx$ docker run --rm -v /tmp/oxidized:/root/.config/oxidized -p 8888:8888/tcp -t oxidized/oxidized:latest oxidized
appledeMacBook-Pro-3:oxidized xxx$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1451ca985166 oxidized/oxidized:latest "oxidized" 26 minutes ago Up 26 minutes 0.0.0.0:8888->8888/tcp cocky_kepler
appledeMacBook-Pro-3:oxidized xxx$ ls
config logs pid router.db
x.x.x.x(保存的所有设备配置,会以 ip 命名保存在 config 中指定的目录下,在这里,我就直接保存在已经挂载的 /tmp/oxidized 下了,可修改,修改后记得挂载到 docker 容器内,否则宿主机就不能直接查看这个目录了)
appledeMacBook-Pro-3:oxidized xxx$ pwd
/tmp/oxidized
解释一下,挂载本地 /tmp/oxidized 目录到容器内的 /root/.config/oxidized 目录下(容器内的这个是 hardcode,没尝试过修改,当然这不是重点),将本地 8888 端口映射到容器的 8888 端口,好了,下面准备一下两个重要的配置文件。
设备备份配置的本地信息文件 - router.db
# 设备类型可参考官方 support type list:https://github.com/ytti/oxidized/blob/master/docs/Supported-OS-Types.md
# Device Type Sample:
## cisco - ios, nxos, ...
## juniper - junos
## h3c - Comware
## Huawei - VRP
## ...
# Sample
## ip:device type:username:password:enable(可缺省enable,这个可以在 config 文件中配置)
x.x.x.x:device type:username:password
x.x.x.x:device type:username:password
x.x.x.x:ios:username:password
x.x.x.x:junos:username:password
x.x.x.x:nxos:username:password
配置文件 - config
---
username: xxx # 这地方无所谓的,因为 router.db 中的设备配置信息会覆盖这个地方的配置,或者说这里配置的 username 叫做默认用户名
password: xxx # 同上
model: nxos # 同上
resolve_dns: true
interval: 3600
use_syslog: false
debug: false
threads: 30
timeout: 20
retries: 3
prompt: !ruby/regexp /^([\w.@-]+[#>]\s?)$/
rest: 0.0.0.0:8888 # 可以用本地 8888 查看 web 端界面
#rest: false # 当然也可以彻底关掉 web 端界面
next_adds_job: false
vars: {}
groups: {}
models: {}
pid: /root/.config/oxidized/pid
stats:
history_size: 10
input:
default: ssh, telnet
debug: false
ssh:
secure: false
ftp:
passive: true
utf8_encoded: true
output:
file:
directory: /root/.config/oxidized # 配置保存文件目录,可以修改,修改后记得挂载到 docker 容器内,否则宿主机就不能直接查看这个目录
source:
default: csv
csv:
file: /root/.config/oxidized/router.db # 设备备份配置的本地信息文件 - router.db
delimiter: !ruby/regexp /:/
map: # 配置设备备份信息 router.db 中的列对应信息,enable 第四列为 vars_map,选填项
name: 0
model: 1
username: 2
password: 3
vars_map:
enable: 4
gpg: false
model_map:
cisco: nxos
juniper: junos
其实还有很多可改项,就先不赘述了,总而言之,言而总之,docker 版本只要 image ready 之后,加上两个配置文件,就可以 run 起来了,效果图如下:
可以做配置比对,当然也可以更新到 gitlab 上再用 git 工具或者 Gitlab UI 做更加直观的比对(需要更改配置,下次再说,因为打算再搞一个 docker 版本,原先都是宿主机直接装的==,亲测可用)。
更多推荐
所有评论(0)