0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Oxidized是一个使用Ruby编写的开源网络设备配置备份工具

网络技术干货圈 来源:网络技术干货圈 作者:圈圈 2022-12-21 14:16 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Oxidized是一个使用 Ruby 编写的开源网络设备配置备份工具,是 RANCID(思科的一个工具) 的替代品,轻量级且可扩展的 Oxidized 支持 130 多种操作系统

体验一下它的功能以及各种实现,看如何能与现有的系统进行整合,或者用 Python 造个简单的轮子。

结论:

  1. 整体使用感受:作为一个专门的配置备份软件,可以说把一个功能做到了比较高的水平!

  2. 亮点功能:可以支持监听设备上报的 syslog 日志中的配置改动来触发配置文件备份,对我来说是一个新的思路

目前支持 ios、junos、eos、nsos、aruba,后面有时间可以验证一次。

  1. 很多实现细节没有体验,大致过了一遍文档

安装过程

拉取镜像

dockerpulloxidized/oxidized

配置文件相关

创建目录,用来存放配置文件、备份的配置、运行日志、主机清单文件等等

mkdir/etc/oxidized

运行一次容器,让程序自动生成初始配置文件,--rm 参数为容器退出后自动删除该容器:

dockerrun--rm-v/etc/oxidized:/root/.config/oxidized-p8888:8888/tcp-toxidized/oxidized:latestoxidized

回显信息为:edit ~/.config/oxidized/config,说明已经生成了默认的配置文件。

编辑配置文件,oxidized 的配置文件是 yaml 格式的,详细的配置项Configuration,提供了多种灵活的数据继承的方法,即可以为每台、每组、每种设备等等进行不同的配置。

---
username:oxidized#值随意,以数据库为准
password:S3cr3tx#值随意,以数据库为准
model:junos#值随意,以数据库为准
interval:3600#配置备份的间隔时间
log:~/.config/oxidized/log#日志文件
debug:false
threads:30#线程
timeout:20#超时时间
retries:3#失败重试次数
prompt:!ruby/regexp/^([w.@-]+[#>]s?)$/#登录设备后的提示符判断
crash:
directory:~/.config/oxidized/crashes
hostnames:false
rest:0.0.0.0:8888#前端界面
pid:~/.config/oxidized/oxidized.pid
input:#连接方式
default:ssh,telnet
debug:false
ssh:
secure:false
output:
default:git#以git方式存储
git:
user:Oxidized
email:oxidized@example.com
repo:"~/.config/oxidized/oxidized.git"
source:
default:csv
csv:
file:~/.config/oxidized/router.db#CSV格式的主机数据库
delimiter:!ruby/regexp/:/
map:
name:0#CSV里面的值映射关系
ip:1
model:2
username:3
password:4
group:6
vars_map:
enable:5
groups:#为每个组进行单独的配置
mikrotik:
username:admin
password:blank
ubiquiti:
username:ubnt
password:ubnt
model_map:#为每种设备类型进行单独的配置
cisco:ios
username:admin
password:password
juniper:junos
ironware:
username:admin
password:password
vars:
enable:enablepassword

router.db 主机数据库,默认是 CSV 格式,也支持通过 SQL 、SQLite、HTTP 等方式来拉取,最终的数据结构根据不同的来源进行处理,然后重点是主机清单里面的数据,要通过 mapvar_map 建立对应的映射关系,这里是配置文件可以灵活制定的关键。

以 CSV 格式为例,应当是以下格式,默认是以 : 为分隔符,最终结果是个列表,然后映射值时根据下标:

r1comwareNetDevops@01group1
r2comwareNetDevops@01group2
r3comwareNetDevops@01group2

运行

运行容器,将本地数据卷映射到容器内的指定目录,容器内部默认监听 8888 端口

dockerrun-td
--nameoxidized_1
--restart=always
-v/etc/oxidized:/root/.config/oxidized
-p8888:8888/tcp
oxidized/oxidized:latest
oxidized

程序输出

配置输出:

  1. 以文件的方式存储

需要手动创建父目录 configs,每个设备一个配置文件,只保留最新的配置,不会保存历史配置。

默认为每个组建立一个文件夹。

每次会在原文件的基础上更新文件,不会保存历史。

  1. 以 git 的方式存储,默认为每个组创建一个 git 仓库,可以通过 single_repo: true 来配置使用同一个仓库,此时每个组为一个文件夹。

oxidized 默认创建的的是bare repo,相当于一个私有的 git 仓库,里面没有 git 的工作目录,只有版本文件,每次备份配置后会进行一次提交;本地的私有仓库,可以通过克隆来查看具体的备份文件。

例如,我这里有一个 default.git 的目录,是上面 router.db 里面几台主机的配置备份信息:

6b468f94-80dd-11ed-8abf-dac502259ad0.png

如果要查看具体的文件,可以克隆这个仓库:

gitclone/etc/oxidized/default.gitmy_config
6b650910-80dd-11ed-8abf-dac502259ad0.png

如果要把文件提交到远程仓库,可以在配置文件中添加 hooks 来实现,例如:

hooks:
push_to_remote:
type:githubrepo
events:[post_store]#发生改变时触发操作
remote_repo:
routers:git@git.intranet:oxidized/routers.git
switches:git@git.intranet:oxidized/switches.git
firewalls:git@git.intranet:oxidized/firewalls.git
publickey:/root/.ssh/id_rsa.pub
privatekey:/root/.ssh/id_rsa

上面的配置会在备份的配置发生改变时,把三个本地仓库分别推送到远程仓库,远端仓库使用密钥认证

注意事项

  1. 修改配置文件需要重启 docker 的时候,不会自动删除 pid 文件,会导致无法启动,需要手动删除解决。
    
rm-rf/etc/oxidized/pid&&dockerrestartoxidized_1

前端界面展示

首页:

6b88d962-80dd-11ed-8abf-dac502259ad0.png

查看配置:

6bbe96ba-80dd-11ed-8abf-dac502259ad0.png

基于 git 方式时,查看版本:

6bea796a-80dd-11ed-8abf-dac502259ad0.png

查看版本差异:

6c01156c-80dd-11ed-8abf-dac502259ad0.png

审核编辑 :李倩


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 操作系统
    +关注

    关注

    37

    文章

    7456

    浏览量

    129729
  • 网络设备
    +关注

    关注

    0

    文章

    355

    浏览量

    30922
  • python
    +关注

    关注

    59

    文章

    4892

    浏览量

    90424

原文标题:这个网络设备配置备份工具绝了,开源、轻量、扩展,支持130多种操作系统!

文章出处:【微信号:网络技术干货圈,微信公众号:网络技术干货圈】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    MySQL自动备份配置与恢复演练实战

    数据库是几乎所有业务系统的核心,MySQL 作为最流行的开源关系型数据库之,在生产环境中承担着海量业务数据的存储任务。次误操作、升级
    的头像 发表于 05-12 09:46 351次阅读

    纯 AI 用 Rust 写了全新的 KiCad 兼容 EDA?但开源社区却吵翻了...

    “  聊聊款 Rust 编写的 EDA 工具,具备现代化的 UI 并宣称原生兼容KiCad工程。但 KiCad 社区对此并不认可,觉得项目违反了 GPL 的开源协议...  ” 大家
    的头像 发表于 04-29 11:42 1177次阅读
    纯 AI 用 Rust 写了<b class='flag-5'>个</b>全新的 KiCad 兼容 EDA?但<b class='flag-5'>开源</b>社区却吵翻了...

    配置工具中缺少 USDHC怎么解决?

    我正在使用最新的配置工具和 SDK 为 RT1176 的 M7 内核配置项目。 配置
    发表于 04-24 06:49

    我们在做一个支持多厂商 MCU 的图形化配置工具,难点却不在工具本身

    ,我们发现有点反直觉的事实: 当图形化配置从单厂商扩展到多厂商, 工具本身反而不是最难的部分。 图形化
    的头像 发表于 03-02 10:13 323次阅读
    我们在做<b class='flag-5'>一个</b>支持多厂商 MCU 的图形化<b class='flag-5'>配置</b><b class='flag-5'>工具</b>,难点却不在<b class='flag-5'>工具</b>本身

    编写生产级的Service配置文件

    systemctl start xxx 敲了无数遍,但真要从零写 Service 文件丢到生产环境跑,很多人就开始心虚了。网上抄配置,Type=simple 还是 forkin
    的头像 发表于 02-25 14:24 480次阅读

    电科网安中标中直机关2025年网络设备框架协议采购项目

    近日,《中直机关2025年网络设备框架协议采购项目》入围结果正式公布,电科网安旗下卫士通信息安全技术有限公司申报的共计22款密码与网络安全产品,在参与的16品类投标中全部成功入围!实现全线中标。
    的头像 发表于 02-06 14:19 965次阅读

    网络接口:数字世界的“门铃”,你了解多少?

    被称为网络接口控制器、网络接口卡或网络适配器,是种硬件组件,能使计算机访问互连网络进行通信和同步。它充当主机发送或接收数据包的端口,可以说
    发表于 11-26 18:53

    芯盾时代助力上海某银行建设网络设备3A管理系统

    芯盾时代中标上海某银行网络设备3A管理(AAA),凭借全链路身份治理能力,智能权限动态调整,审计溯源毫秒级响应等实力,将全面提升银行对网络设备的管理能力。
    的头像 发表于 09-26 09:30 1131次阅读

    网络设备为什么选用25MHz及倍数频率?

    在网卡、交换机、路由器、以太网等网络设备中,晶振频率的选择是根据设备的核心功能、芯片要求以及通信协议标准来决定的。 使用 25MHz及其倍数关系的晶振 ,主要是因为这个频率体系 与以太网标准
    的头像 发表于 09-13 11:09 2022次阅读

    网络设备为什么选用25MHz及倍数频率?

    在网卡、交换机、路由器、以太网等网络设备中,晶振频率的选择是根据设备的核心功能、芯片要求以及通信协议标准来决定的。使用25MHz及其倍数关系的晶振,主要是因为这个频率体系与以太网标准、通信协议、芯片
    的头像 发表于 09-12 14:06 1969次阅读
    <b class='flag-5'>网络设备</b>为什么选用25MHz及倍数频率?

    为什么网络设备需要UPS电源?文看懂电力守护的底层逻辑

    在数字化浪潮席卷的今天,网络设备已成为企业运营的“神经中枢”。从金融交易系统到医疗数据平台,从电商订单处理到政务服务网络,每秒的稳定运行都关乎业务连续性与数据安全。然而,场突如其来
    的头像 发表于 09-08 10:36 1330次阅读
    为什么<b class='flag-5'>网络设备</b>需要UPS电源?<b class='flag-5'>一</b>文看懂电力守护的底层逻辑

    三大核心网络设备的运维要点

    作为运维工程师,熟练掌握网络设备的管理和维护是构建稳定IT基础架构的关键。本文将深入探讨交换机、路由器和防火墙这三大核心网络设备的运维要点,从基础配置到高级故障排除,为您提供全面的技术指导。
    的头像 发表于 07-22 16:35 1331次阅读

    开源工具 Made with KiCad(131):BomberCat 安全测试工具

    “  BomberCat 是结合硬件开发与安全测试的开源工具,主要面向电子工程和网络安全领域。用于检测银行终端、门禁系统等
    的头像 发表于 06-19 11:18 8338次阅读
    <b class='flag-5'>开源</b><b class='flag-5'>工具</b> Made with KiCad(131):BomberCat 安全测试<b class='flag-5'>工具</b>

    工业网络设备挑选不用愁,带你快速选型

    网络设备
    星创易联
    发布于 :2025年06月06日 10:01:25

    盟通方案|CANopen数据链路配置工具

    十分繁琐。因此,可以配置CANopen网络中的通信链路参数的工具至关重要。CANopenDeviceExplorer软件上文我们已经提到
    的头像 发表于 05-30 14:19 920次阅读
    盟通方案|CANopen数据链路<b class='flag-5'>配置</b><b class='flag-5'>工具</b>