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, telnetdebug: falsessh:secure: falseftp:passive: trueutf8_encoded: true
output:file:directory: /root/.config/oxidized # 配置保存文件目录,可以修改,修改后记得挂载到 docker 容器内,否则宿主机就不能直接查看这个目录
source:default: csvcsv:file: /root/.config/oxidized/router.db # 设备备份配置的本地信息文件 - router.dbdelimiter: !ruby/regexp /:/map: # 配置设备备份信息 router.db 中的列对应信息,enable 第四列为 vars_map,选填项name: 0model: 1username: 2password: 3vars_map:enable: 4gpg: false
model_map:cisco: nxosjuniper: junos

其实还有很多可改项,就先不赘述了,总而言之,言而总之,docker 版本只要 image ready 之后,加上两个配置文件,就可以 run 起来了,效果图如下:

可以做配置比对,当然也可以更新到 gitlab 上再用 git 工具或者 Gitlab UI 做更加直观的比对(需要更改配置,下次再说,因为打算再搞一个 docker 版本,原先都是宿主机直接装的==,亲测可用)。

Oxidized-20180912-docker 版本的网络设备备份系统相关推荐

  1. Oxidized 网络设备自动备份系统搭建

    文章目录 前言 一.oxidized是什么? 二.oxidized搭建 1.环境准备 2.安装步骤 3.配置文件 4.router.db 文件规范 5.运行 6.Nginx验证登录 三,踩坑总结 前言 ...

  2. 快速搭建ELK7.5版本的日志分析系统--搭建篇

    一.ELK安装部署 官网地址:https://www.elastic.co/cn/ 官网权威指南:https://www.elastic.co/guide/cn/elasticsearch/guide ...

  3. Docker容器中运行Ubuntu系统

    只习惯用Centos系统,但是有些软件编译安装很麻烦不方便,但是呢在Ubuntu中就变得容易方便,所以我打算用docker运行Ubuntu系统弥补Centos短板和不足之处: 项目地址:https:/ ...

  4. nbu oracle 冷备_NBU备份系统应用操作手册..doc

    NBU备份系统应用操作手册. NBU备份系统应用操作手册 2008.12.15编制 变更记录日期版本号描述作者2008-12-15v1.0根据NBU6.5备份服务器/客户机配置及运行情况分析整理的初稿 ...

  5. 南通市交巡警支队同城异地容灾备份系统项目中标结果公告

    南通市政府采购中心受南通市交巡警支队委托,就其同城异地容灾备份系统项目按规定程序进行了开标.评标.定标,现就本次招标的中标结果公布如下: 一.招标项目名称及招标文件编号:南通市交巡警支队同城异地容灾备 ...

  6. 超简单让.NET Core开发者快速拥有CI/CD的能力-Docker版本

    超简单让.NET Core开发者快速拥有CI/CD的能力-Docker版本 前言 上一篇自动化测试,全面且详细的介绍了从零开始到发布版本的步骤,这是传统的方式,本次为大家带来的是如何在5分钟内使用上d ...

  7. Docker版本Jenkins的使用

    Docker版本Jenkins的使用 低调的微胖关注赞赏支持 Docker版本Jenkins的使用 12018.05.15 18:21:50字数 1202阅读 22588 一. 什么是Jenkins ...

  8. 纯MASM32打造BootClos——查看、备份系统开关机记录(0.0.0001 beta1,9KB)

    主要功能就是:查看.备份系统开关机记录 你可以先点击列表框的列标题条来对记录进行排序,然后再备份. 文件说明符 : C:\masm32\works\BootClos\BootClos.exe 属性 : ...

  9. sql docker容器_了解SQL Server Docker容器中的备份和还原操作

    sql docker容器 In this 17th article of the series (see the full article index at bottom), we will disc ...

最新文章

  1. Lua 学习笔记(一)环境搭建
  2. MATLAB点云处理:读取、展示、最近邻、ICP算法求取转移矩阵、旋转
  3. 计算机网络那些事~(一)
  4. windowsxp的自动更新关闭后怎么能不提示?
  5. 关于构造与析构过程中调用虚函数的问题
  6. [Java网络编程基础]InetAddress的使用
  7. java面试解决项目难题_Java转换难题者,不适合工作(或面试)
  8. 【转】Postman系列三:Postman中post接口实战(上传文件、json请求)
  9. cube云原生机器学习平台-架构(四)
  10. RFID酒店布草洗涤管理系统应用
  11. 蚂蚁金服服务器系统,蚂蚁金服轻量级监控分析系统 SOFALookout 服务端开源
  12. 大二 数据结构 期末复习题(仅供参考)
  13. SpringBoot代理设置
  14. java运行环境搭建_java的运行环境
  15. echart 三维可视化地图_ECharts实现三维可视化
  16. 51单片机蜂鸣器播放音乐C语言程序实例,51单片机 使用蜂鸣器播放简单音乐
  17. Allegro静态铜皮避让问题
  18. windows7到底是多用户多任务操作系统还是单用户多任务操作系统
  19. 【App Inventor】飞机大战 APP
  20. 小型三维引擎设计实现-渲染层的设计总结

热门文章

  1. 用预处理指令#define声明一个常数,用以表明1年中有多少秒(忽略闰年问题)
  2. TCP/IP协议簇之数据链路层
  3. VMware 虚拟网卡防火墙问题
  4. JavaScript 数字格式化怎么写(#,##.00) (实用,赞)
  5. Python学习之title()函数
  6. 虚拟局域网vlan以及技术
  7. Postgresql默认用户名与密码
  8. 区别css单位px、em、rem
  9. C语言 求n的阶乘及阶乘和
  10. 生物信息学算法之Python实现|Rosalind刷题笔记:011 DNA六框翻译