利用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. 官方容器镜 ...
随机推荐
- Centos 各个版本的下载源
China Alibaba Cloud Computing http://mirrors.aliyun.com/centos/ China Beijing Institute of Technolog ...
- kafka架构、基本术语、消息存储结构
1.kafka架构 kafka处理消息大概流程 生产者发送消息给kafka服务器 消费者从kafka服务器(broker)读取消息 kafka服务器依靠zookeeper集群进行服务协调管理 2.ka ...
- [转] CISC与RISC
点击阅读原文 这里就不去管细节,简单来谈一下,ARM和X86之间为什么不太具有可比性的问题.要搞清楚这个问题首先要明白什么是架构,之前也有很多人提到了架构不同,但架构是什么意思?它是一个比较 ...
- Excel只想显示一部分日期,怎样把其余部分隐藏起来?
问题:只想显示一部分日期,怎样把其余部分隐藏起来? 方法:分列 Step1:选中需要修改的单元格——数据——分列. Step2:固定宽度——点击下一步. Step3:在建立分列处单击鼠标(若想取消 ...
- Android学习笔记ActionView
概念 案例 1.布局文件 activity_main.xml <?xml version="1.0" encoding="utf-8"?> < ...
- Dubbo——服务发布原理
引言 在使用Dubbo的时候你一定会好奇它是怎么实现RPC的,而要了解它的调用过程,必然需要先了解其服务发布/订阅的过程,本篇将详细讨论Dubbo的发布过程. 源码分析 发布服务 新学Dubbo大都会 ...
- Java 源码刨析 - 线程的状态有哪些?它是如何工作的?
线程(Thread)是并发编程的基础,也是程序执行的最小单元,它依托进程而存在. 一个进程中可以包含多个线程,多线程可以共享一块内存空间和一组系统资源,因此线程之间的切换更加节省资源.更加轻量化,也因 ...
- 全网最全fiddler使用教程和fiddler如何抓包(fiddler手机抓包)-笔者亲测
一.前言 抓包工具有很多,比如常用的抓包工具Httpwatch,通用的强大的抓包工具Wireshark.为什么使用fiddler?原因如下:1.Wireshark是通用的抓包工具,但是比较庞大,对于只 ...
- RockeMQ安装与入门
淘宝内部的交易系统使用了淘宝自主研发的Notify消息中间件,使用Mysql作为消息存储媒介,可完全水平扩容,为了进一步降低成本,淘宝开发团队认为存储部分可以进一步优化,2011年初,Linkin开源 ...
- Jenkins入门教程之linux下安装配置jenkins(一)
https://blog.csdn.net/zjh_746140129/article/details/80835866