资讯动态

网络设备配置备份怎么做:Oxidized 从规划到上线的实用指南

发布时间:2026/10/19 11:45:17 来源:尧图企业网站定制
网络设备配置备份怎么做Oxidized 从规划到上线的实用指南【免费下载链接】oxidizedOxidized is a network device configuration backup tool. Its a RANCID replacement!项目地址: https://gitcode.com/GitHub_Trending/ox/oxidizedOxidized 是一个网络设备配置备份工具定时登录设备拉取运行配置写进 Git 仓库保留每次变更的历史。它支持 130 多种操作系统类型适合有几十到几千台设备、想要版本化配置和审计追踪的运维团队。 动手前先想清楚先别装软件三个问题定下来后面的配置基本就定型了备份范围和频率多少台设备、多久拉一次规模决定你用 CSV 还是数据库做设备清单也决定线程数。配置存到哪全部塞进一个 Git 仓库还是按部门/站点拆成多个仓库要不要落盘加密权限边界谁能读配置、谁能改仓库设备侧用密码还是密钥是否要去掉口令等敏感字段想清楚这三点你就知道该用哪套 output、要不要 git-crypt、要不要按 group 拆库。 最小可用配置先装依赖和主程序以 Debian/Ubuntu 为例apt install ruby ruby-dev libsqlite3-dev libssl-dev pkg-config libssh2-1-dev libyaml-dev gem install oxidized也可以从源码装git clone https://gitcode.com/GitHub_Trending/ox/oxidized cd oxidized rake install第一次运行oxidized会在~/.config/oxidized/config生成默认配置。把下面这份精简配置填进去只保留能跑起来的部分username: backup password: changeit model: ios interval: 3600 output: default: git git: user: Oxidized email: oexample.com repo: /var/lib/oxidized/devices.git再建一个设备清单文件~/.config/oxidized/router.db一行一台格式是主机名:模型可再加账号、密码、enable 口令router01.example.com:ios:backup:secret跑一次oxidizeddevices.git里就会出现第一次备份。到此为止已经能用了剩下的按场景选路。 按你的场景选路单一 Git 仓库所有设备进一个库方便统一 diff 和检索。适合设备在一两千台以内、团队共用一个视图的情况。output: default: git git: user: Oxidized email: oexample.com repo: /var/lib/oxidized/devices.git single_repo: true注意single_repo让所有分组共用一个仓库配合clean_obsolete_nodes: true还能自动清掉已下线设备的旧配置。按分组拆多个仓库不同部门或站点要权限隔离时用分组Oxidized 会为每个 group 自动建库。在 source 的map里把某一列映射成group即可。output: default: git git: user: Oxidized email: oexample.com repo: /var/lib/oxidized/git-repos/default.git注意无分组的设备进default.git其余按分组名各建一个.git目录结构会多一层。Git-Crypt 加密落盘配置含敏感信息、落盘必须加密时用 gitcrypt 输出提交时被 git-crypt 在线加密。output: default: gitcrypt gitcrypt: user: Oxidized email: oexample.com repo: /var/lib/oxidized/devices users: - 0xABCDEF0123456789注意users列表只在建仓时写入一次之后要加解密人得手动git-crypt add-gpg-user。设备清单来自数据库设备多、手工维护 router.db 不现实、已有 CMDB 时直接用 SQL source。source: default: sql sql: adapter: sqlite database: /var/lib/oxidized/nodes.db table: nodes map: name: fqdn model: model注意name字段是必填的它决定输出文件名映射错了对应不上配置。✅ 上线前的最后检查调线程和超时threads、timeout、timelimit默认是 30 / 20 / 300按设备规模和慢设备情况调别让一台慢设备堵住整个队列。仓库写权限git 输出要能写 repo 目录用专门的oxidized用户跑别用 root。ls -ld /var/lib/oxidized确认属主对得上。去掉敏感字段加vars: { remove_secret: true }让模型里的替换规则把 SNMP community 之类的口令抹掉别把明文带进仓库。接一个告警用 hook 订阅node_fail备份连续失败时第一时间知道而不是第二天才发现。要不要开 Web需要 REST API 和界面就装oxidized-web默认不加载按需再开。 跑起来之后查某台设备的变更历史最直接cd /var/lib/oxidized/devices.git git log --follow router01.example.com git diff HEAD~1 HEAD -- router01.example.com想把每次变更邮件发出去挂一个 exec hook 调用仓库自带的脚本 extra/oxidized-report-git-commits它在post_store事件里跑生成 diff 并发信。日常看设备清单、手动触发某台设备立即备份则用 oxidized-web 的GET /nodes、GET/PUT /node/next/[NODE]接口。⚠️ 别踩这些坑连上设备却拉不到配置、或直接超时。多半是设备真实提示符和模型里定义的prompt正则对不上。用 irb 验证实际提示符 ~ /模型里的正则/不匹配就把该模型复制到~/.config/oxidized/model/下改正则Oxidized 会优先用本地这份。仓库越来越大、备份越来越慢。Git 仓库只增不减积累多了就变卡。停掉 oxidized、先备份数据进仓库跑一次git gc再启动。配了 githubrepo 却推不到远端。运行用户的known_hosts没信任那台 Git 服务器。执行ssh-keyscan git.intranet ~/.ssh/known_hosts容器里要把这个目录映射进容器。你改了仓库oxidized 却不认。裸仓库的 index 不会随 push 更新Oxidized 读的是缓存的 HEAD。进仓库执行git ls-tree -r HEAD | git update-index --index-info手动同步。下一步想让某类设备把show version、show inventory拆成独立输出类型、或写自己的设备模型看 docs/Creating-Models.md全部输入、输出、hook、日志的完整参数在 docs/Configuration.md。模型实现本身放在 lib/oxidized/model/照着现成的 ios.rb、junos.rb 抄结构最快。【免费下载链接】oxidizedOxidized is a network device configuration backup tool. Its a RANCID replacement!项目地址: https://gitcode.com/GitHub_Trending/ox/oxidized创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑