利用docker部署oxidized网络设备备份系统
随着网络设备的增多,通过人手备份网络设备倍感压力,而且效率低。有编程基础的人可能会通过Python的parimiko 或者netmiko 连接到设备操作 把文件通过ftp 上传到FTP服务器, 在通过定时任务,定期自动备份。这个应该是现阶段主流非人民币网络玩家的最优解决方案。
今天我们来看看oxidized这个被称之为“最好用的”网络备份系统,友好的支持不同厂商。
oxidized简介
oxidized 是一个网络设备备份系统, 轻量级,可扩展,支持超过90多个操作系统。个人觉得它无与伦比的优势, 同时支持h3c,华为,思科。
随着容器化的兴起,部署软件变得的越来越简单,有的已经帮您封装好,你开箱即用就可以了。好了下面,我们看看这个oxidized系统有没有镜像的。
[root@node1 ~]# docker search oxidized
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
oxidized/oxidized Oxidized is a network device configuration b… [OK]
alectolytic/oxidized Oxidized: Alpine Linux based Docker image [OK]
klinnex/oxidized Oxidized [OK]
bootc/oxidized Oxidized, the configuration backup software …
edeln/oxidized oxidized as a framework, using its ssh and s…
mkbarry/oxidized-worker
mkbarry/oxidized-tooling
b3vis/oxidized Oxidized config backup software in an Alpine… [OK]
neteng1/oxidized Backup Network Devices
rbrayner/oxidized older oxidized [OK]
macaty/oxidized oxidized [OK]
ossobv/oxidized Edited oxidized (ios.rb) so you can use read…
dbrockus/oxidized This is a TEST, DO NO USE
voravitl/oxidized
zxandy/oxidized Oxidized - Configuration backup software htt…
deesel/oxidized
zeyanlin/oxidized configuration backup software (IOS, JunOS) -… [OK]
samkdocker/oxidized
talibaiiika/oxidized
splendid/oxidized mtk
sfoster/oxidized Docker Oxidized auto build [OK]
xrlx/graphite-rust Oxidized graphite stack [OK]
把官方的 oxidized/oxidized 镜像拉下来
[root@node1 ~]# docker pull oxidized/oxidized:latest
下载完启动镜像
[root@node1 data]# docker run --name='oxidized' -itd -v /data/oxidized:/root/.config/oxidized -p 8888:8888/tcp -t oxidized/oxidized
4bbb01b608e38c59469b1056e24c65f1f36f6e65b0734ab1e86b64b4efcf3306
说明一下:挂载本地/data/oxidized目录到容器内的/root/.config/oxidized目录下,将本地8888端口映射到容器的tcp8888端口。
查看是否已经启动完
[root@node1 data]# docker logs oxidized
*** Running /etc/my_init.d/00_regen_ssh_host_keys.sh...
*** Running /etc/my_init.d/10_syslog-ng.init...
Jul :: 4bbb01b608e3 syslog-ng[]: syslog-ng starting up; version='3.13.2'
*** Booting runit daemon...
*** Runit started as PID
Jul :: 4bbb01b608e3 cron[]: (CRON) INFO (pidfile fd = )
Jul :: 4bbb01b608e3 cron[]: (CRON) INFO (Running @reboot jobs)
edit ~/.config/oxidized/config
I, [--11T15::47.866728 #] INFO -- : Oxidized starting, running as pid
F, [--11T15::47.869750 #] FATAL -- : Oxidized crashed, crashfile written in /root/.config/oxidized/crash
no source csv config, edit ~/.config/oxidized/config
I, [--11T15::49.179948 #] INFO -- : Oxidized starting, running as pid
I, [--11T15::49.180885 #] INFO -- : lib/oxidized/nodes.rb: Loading nodes
F, [--11T15::49.181047 #] FATAL -- : Oxidized crashed, crashfile written in /root/.config/oxidized/crash
No such file or directory @ rb_sysopen - /root/.config/oxidized/router.db
从以上日志看到缺失router.db这个文件,导致启动失败。解决方法在/data/oxidized目录下新建router.db文件,并在router.db随意添加一条记录。后重新启动容器
[root@node1 oxidized]# touch router.db
[root@node1 oxidized]# cat router.db
192.168.1.1:vrp:admin:admin
[root@node1 oxidized]# docker restart oxidized
oxidized
[root@node1 oxidized]#
再次查看日志
[root@node1 data]# docker logs oxidized
......省略
Puma starting in single mode...
* Version 3.11.4 (ruby 2.5.1-p57), codename: Love Song
* Min threads: 0, max threads: 16
* Environment: development
* Listening on tcp://127.0.0.1:8888
Use Ctrl-C to stop
[root@node1 oxidized]#
修改配置文件
router.db是记录设备备份配置的本地信息文件
x.x.x.x:device type:username:password
10.10.24.241:ios:admin:password
10.10.28.235:comware:admin:password
10.10.0.107:vrp:admin:password
注解:device对应的是容器目录/var/lib/gems/2.5.0/gems/oxidized-0.26.3/lib/oxidized/model/的文件名
config文件
---
username: username : 用户名 这个参数不用改,会从router.db读取.
password: password : 密码 这个参数也不用改,会从router.db读取.
model: junos : 模型 这个参数也不用改,会从router.db读取.
interval: : 备份周期 单位是秒,也就是默认一个小时备份一次
log: /home/oxidized/.config/oxidized/logs/oxidized.log:日志
debug: false :debug模式
threads: :线程
timeout: : 超时
retries: : 重试次数
prompt: !ruby/regexp /^([\w.@-]+[#>]\s?)$/
rest: 127.0.0.1: :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:
model:
username:
password:
gpg: false
model_map:
cisco: ios
juniper: junos
把rest:127.0.0.1:888修改成0.0.0.0:8888。重启容器,就可以访问web页面了。

利用docker部署oxidized网络设备备份系统的更多相关文章
- 利用docker部署elk交换机日志分析
今天我们来聊一下利用docker部署elk日志分析系统,这里解析一下elk是啥东西.elk分别是Elasticsearch,Logstash和Kibana的首字母缩写. Elasticsearch是一 ...
- CentOS下利用Docker部署Surging
原文:CentOS下利用Docker部署Surging 1. 安装Centos, 配置固定ip配置文件地址vi /etc/sysconfig/network-scripts/ifcfg-ens33`` ...
- 云服务器上利用Docker部署Django项目
转载别人的,请看下面链接 云服务器上利用Docker部署Django项目
- Docker在手,天下我有,在Win10系统下利用Docker部署Gunicorn+Flask打造独立镜像
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_164 书接上回,之前一篇:Win10环境下使用Flask配合Celery异步推送实时/定时消息(Socket.io)/2020年最 ...
- 使用docker部署WordPress博客系统(win10企业版)
docker介绍: docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相 ...
- Docker -- 2 -- 利用docker部署网站和数据库
在Docker – 系统整洁之道 – 1中已经对Docker的一些命令和Docker镜像的使用及操作做了记录. 这次就利用docker进行一次真正的实例使用,使用docker搭建一个简单的答题系统,这 ...
- CentOS6.5利用Docker部署ShowDoc
在Docker中部署ShowDoc 一.安装Docker 1.安装Docker yum install docker 最后出现Complete即可 2.启动服务 # service docker st ...
- 利用docker部署redis集群
目录 一.首先配置redis.conf文件,... 1 1.获取配置文件... 1 2.修改各配置文件的参数... 2 二.下载redis镜像.启动容器... 2 1.创建网络... 2 2.拉取镜像 ...
- odoo开发笔记 -- 单台物理服务器上,利用docker部署多套odoo应用
部署结构: 待更新! ----服务器硬件配置: 操作系统:ubuntu16.04-64bit CPU/内存:4核8G 1. 基础环境安装 nginx离线安装: docker环境安装: 2. 官方容器镜 ...
随机推荐
- Rust异步之Future
对异步的学习,我们先从Future开始,学习异步的实现原理.等理解了异步是怎么实现的后,再学习Rust异步编程涉及的2个库(futures.tokio)的时候就容易理解多了. Future rust中 ...
- Cookie 与 SessionID 的本质
当用户首次访问服务器的时候,服务器为每个用户单独创建一个 Session 对象,并分配一个新的 SessionID,此时 SessionID 通过 Cookie 保存在用户端. 当用户再次访问服务器的 ...
- 一文读懂 Java 异常体系
写程序的时候,编辑器会提示错误,关键字拼错了,语法不符合规则,不符合泛型:程序编译的时候,编译器会提示错误,检查是否符合 Java 的语法规范,没有通过编译器检查的程序就无法编译,也就无法运行.这些都 ...
- (三)log4j常用配置
控制台(console) log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target = ...
- OO第二单元——兜兜转转之神秘电梯
一.设计策略及程序结构分析 1.第一次作业 第一次作业是需要我们用多线程模拟一个实时电梯系统,功能比较简单正常,但要有捎带功能,我采用的调度策略便是指导书上提供的ALS调度策略,采用消费者-生产者模式 ...
- php配置文件
mysql的配置文件是 my.iniphp配置文件是 php.iniThinKPHP配置文件 config.phpApche配置文件 httpd-confThinkPHP的运行,开启调试模式配置为 a ...
- C# 人脸识别库
.NET 人脸识别库 ViewFaceCore 这是基于 SeetaFace6 人脸识别开发的 .NET 平台下的人脸识别库这是一个使用超简单的人脸识别库这是一个基于 .NET Standard 2. ...
- TCP实战二(半连接队列、全连接队列)
TCP实验一我们利用了tcpdump以及Wireshark对TCP三次握手.四次挥手.流量控制做了深入的分析,今天就让我们一同深入理解TCP三次握手中两个重要的结构:半连接队列.全连接队列. 参考文献 ...
- 01-最大子列和问题(java)
问题描述:给定N个整数的序列{A1,A2,A3,…,An},求解子列和中最大的值. 这里我们给出{-2,11,-4,13,-5,-2}这样一个序列,正确的最大子列和为20 该题是在数据结构与算法中经常 ...
- Java的前生今世
Java作为一门编程语言,自诞生以来已经流行了20多年,在学习它之前,我们有必要先了解一下它的历史,了解它是如何一步步发展到今天这个样子. 孕育 上世纪90年代,硬件领域出现了单片式计算机系统,比如电 ...