0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Oxidized是一個使用Ruby編寫的開源網(wǎng)絡(luò)設(shè)備配置備份工具

網(wǎng)絡(luò)技術(shù)干貨圈 ? 來源:網(wǎng)絡(luò)技術(shù)干貨圈 ? 作者:圈圈 ? 2022-12-21 14:16 ? 次閱讀

Oxidized是一個使用 Ruby 編寫的開源網(wǎng)絡(luò)設(shè)備配置備份工具,是 RANCID(思科的一個工具) 的替代品,輕量級且可擴(kuò)展的 Oxidized 支持 130 多種操作系統(tǒng)

體驗一下它的功能以及各種實現(xiàn),看如何能與現(xiàn)有的系統(tǒng)進(jìn)行整合,或者用 Python 造個簡單的輪子。

結(jié)論:

  1. 整體使用感受:作為一個專門的配置備份軟件,可以說把一個功能做到了比較高的水平!

  2. 亮點功能:可以支持監(jiān)聽設(shè)備上報的 syslog 日志中的配置改動來觸發(fā)配置文件備份,對我來說是一個新的思路。

目前支持 ios、junos、eos、nsos、aruba,后面有時間可以驗證一次。

  1. 很多實現(xiàn)細(xì)節(jié)沒有體驗,大致過了一遍文檔

安裝過程

拉取鏡像

dockerpulloxidized/oxidized

配置文件相關(guān)

創(chuàng)建目錄,用來存放配置文件、備份的配置、運(yùn)行日志、主機(jī)清單文件等等

mkdir/etc/oxidized

運(yùn)行一次容器,讓程序自動生成初始配置文件,--rm 參數(shù)為容器退出后自動刪除該容器:

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

回顯信息為:edit ~/.config/oxidized/config,說明已經(jīng)生成了默認(rèn)的配置文件。

編輯配置文件,oxidized 的配置文件是 yaml 格式的,詳細(xì)的配置項Configuration,提供了多種靈活的數(shù)據(jù)繼承的方法,即可以為每臺、每組、每種設(shè)備等等進(jìn)行不同的配置。

---
username:oxidized#值隨意,以數(shù)據(jù)庫為準(zhǔn)
password:S3cr3tx#值隨意,以數(shù)據(jù)庫為準(zhǔn)
model:junos#值隨意,以數(shù)據(jù)庫為準(zhǔn)
interval:3600#配置備份的間隔時間
log:~/.config/oxidized/log#日志文件
debug:false
threads:30#線程
timeout:20#超時時間
retries:3#失敗重試次數(shù)
prompt:!ruby/regexp/^([w.@-]+[#>]s?)$/#登錄設(shè)備后的提示符判斷
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格式的主機(jī)數(shù)據(jù)庫
delimiter:!ruby/regexp/:/
map:
name:0#CSV里面的值映射關(guān)系
ip:1
model:2
username:3
password:4
group:6
vars_map:
enable:5
groups:#為每個組進(jìn)行單獨(dú)的配置
mikrotik:
username:admin
password:blank
ubiquiti:
username:ubnt
password:ubnt
model_map:#為每種設(shè)備類型進(jìn)行單獨(dú)的配置
cisco:ios
username:admin
password:password
juniper:junos
ironware:
username:admin
password:password
vars:
enable:enablepassword

router.db 主機(jī)數(shù)據(jù)庫,默認(rèn)是 CSV 格式,也支持通過 SQL 、SQLite、HTTP 等方式來拉取,最終的數(shù)據(jù)結(jié)構(gòu)根據(jù)不同的來源進(jìn)行處理,然后重點是主機(jī)清單里面的數(shù)據(jù),要通過 mapvar_map 建立對應(yīng)的映射關(guān)系,這里是配置文件可以靈活制定的關(guān)鍵。

以 CSV 格式為例,應(yīng)當(dāng)是以下格式,默認(rèn)是以 : 為分隔符,最終結(jié)果是個列表,然后映射值時根據(jù)下標(biāo):

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

運(yùn)行

運(yùn)行容器,將本地數(shù)據(jù)卷映射到容器內(nèi)的指定目錄,容器內(nèi)部默認(rèn)監(jiān)聽 8888 端口

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

程序輸出

配置輸出:

  1. 以文件的方式存儲

需要手動創(chuàng)建父目錄 configs,每個設(shè)備一個配置文件,只保留最新的配置,不會保存歷史配置。

默認(rèn)為每個組建立一個文件夾。

每次會在原文件的基礎(chǔ)上更新文件,不會保存歷史。

  1. 以 git 的方式存儲,默認(rèn)為每個組創(chuàng)建一個 git 倉庫,可以通過 single_repo: true 來配置使用同一個倉庫,此時每個組為一個文件夾。

oxidized 默認(rèn)創(chuàng)建的的是bare repo,相當(dāng)于一個私有的 git 倉庫,里面沒有 git 的工作目錄,只有版本文件,每次備份配置后會進(jìn)行一次提交;本地的私有倉庫,可以通過克隆來查看具體的備份文件。

例如,我這里有一個 default.git 的目錄,是上面 router.db 里面幾臺主機(jī)的配置備份信息:

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

如果要查看具體的文件,可以克隆這個倉庫:

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

如果要把文件提交到遠(yuǎn)程倉庫,可以在配置文件中添加 hooks 來實現(xiàn),例如:

hooks:
push_to_remote:
type:githubrepo
events:[post_store]#發(fā)生改變時觸發(fā)操作
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

上面的配置會在備份的配置發(fā)生改變時,把三個本地倉庫分別推送到遠(yuǎn)程倉庫,遠(yuǎn)端倉庫使用密鑰認(rèn)證

注意事項

  1. 修改配置文件需要重啟 docker 的時候,不會自動刪除 pid 文件,會導(dǎo)致無法啟動,需要手動刪除解決。
    
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

審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    6859

    瀏覽量

    123499
  • 網(wǎng)絡(luò)設(shè)備

    關(guān)注

    0

    文章

    317

    瀏覽量

    29706
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4801

    瀏覽量

    84857

原文標(biāo)題:這個網(wǎng)絡(luò)設(shè)備配置備份工具絕了,開源、輕量、擴(kuò)展,支持130多種操作系統(tǒng)!

文章出處:【微信號:網(wǎng)絡(luò)技術(shù)干貨圈,微信公眾號:網(wǎng)絡(luò)技術(shù)干貨圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    六類網(wǎng)線與其他網(wǎng)絡(luò)設(shè)備的連接方式及注意事項

    六類網(wǎng)線(符合CAT-6標(biāo)準(zhǔn))是種高速網(wǎng)絡(luò)連接設(shè)備,支持IEEE標(biāo)準(zhǔn)的千兆位網(wǎng)速(Gigabit Ethernet),可傳輸數(shù)據(jù)速度高達(dá)10 Gbps,適用于與計算機(jī)、路由器和其他網(wǎng)絡(luò)設(shè)備
    的頭像 發(fā)表于 01-09 10:43 ?135次閱讀

    如何配置ptp網(wǎng)絡(luò)設(shè)備

    1. 理解PTP協(xié)議 PTP是網(wǎng)絡(luò)協(xié)議,用于在網(wǎng)絡(luò)設(shè)備之間同步時鐘。它基于IEEE 1588標(biāo)準(zhǔn),能夠提供亞微秒級別的時間同步精度。PTP通常用于需要精確時間同步的應(yīng)用,如電信、金融交易、工業(yè)
    的頭像 發(fā)表于 12-29 09:36 ?220次閱讀

    介紹6款開源免費(fèi)的網(wǎng)絡(luò)監(jiān)控工具

    網(wǎng)絡(luò)監(jiān)控是保障網(wǎng)絡(luò)系統(tǒng)和數(shù)據(jù)安全的重要手段,能夠幫助運(yùn)維人員及時發(fā)現(xiàn)并應(yīng)對各種問題,及時發(fā)現(xiàn)并解決,從而確保網(wǎng)絡(luò)的順暢運(yùn)行。 文本將簡單介紹6款開源免費(fèi)的
    的頭像 發(fā)表于 11-25 15:53 ?671次閱讀
    介紹6款<b class='flag-5'>開源</b>免費(fèi)的<b class='flag-5'>網(wǎng)絡(luò)</b>監(jiān)控<b class='flag-5'>工具</b>

    使用Python腳本備份華為交換機(jī)的配置信息

    在現(xiàn)代網(wǎng)絡(luò)管理中,備份交換機(jī)的配置信息是項至關(guān)重要的任務(wù)。備份可以確保在交換機(jī)發(fā)生故障或配置
    的頭像 發(fā)表于 08-12 17:50 ?625次閱讀
    使用Python腳本<b class='flag-5'>備份</b>華為交換機(jī)的<b class='flag-5'>配置</b>信息

    使用Python批量連接華為網(wǎng)絡(luò)設(shè)備

    隨著網(wǎng)絡(luò)規(guī)模的擴(kuò)大和設(shè)備數(shù)量的增加,手動配置和管理每臺網(wǎng)絡(luò)設(shè)備變得越來越不現(xiàn)實。因此,自動化工具和腳本變得尤為重要。Python語言以其簡潔
    的頭像 發(fā)表于 08-12 17:48 ?508次閱讀

    思科網(wǎng)絡(luò)設(shè)備常用show命令

    在思科網(wǎng)絡(luò)設(shè)備的日常運(yùn)維中,有些命令被頻繁使用,它們可以幫助網(wǎng)絡(luò)管理員快速獲取重要信息并保存配置更改。在這篇文章中,我們將詳細(xì)介紹五出場
    的頭像 發(fā)表于 08-07 14:38 ?2071次閱讀

    使用Velero備份Kubernetes集群

    Velero 是 heptio 團(tuán)隊(被 VMWare 收購)開源的 Kubernetes 集群備份、遷移工具。
    的頭像 發(fā)表于 08-05 15:43 ?379次閱讀
    使用Velero<b class='flag-5'>備份</b>Kubernetes集群

    有助于提高網(wǎng)絡(luò)設(shè)備性能的FRAM SF25C20(MB85RS2MT)

    有助于提高網(wǎng)絡(luò)設(shè)備性能的FRAM SF25C20(MB85RS2MT)
    的頭像 發(fā)表于 07-25 09:49 ?308次閱讀
    有助于提高<b class='flag-5'>網(wǎng)絡(luò)設(shè)備</b>性能的FRAM SF25C20(MB85RS2MT)

    IR615如何實現(xiàn)VPN鏈路備份?

    目的:IR615的鏈路備份(WAN為主鏈路、Wi-Fi做STA為從鏈路),當(dāng)VPN建好后,WAN口主鏈路無線網(wǎng)絡(luò)為備用鏈路。設(shè)備固件版本:2.3.0.r5114。拓?fù)洌? 1. 配置I
    發(fā)表于 07-25 08:27

    如何編寫BP神經(jīng)網(wǎng)絡(luò)

    傳播過程,即誤差從輸出層反向傳播回輸入層,并據(jù)此調(diào)整網(wǎng)絡(luò)參數(shù)。本文將詳細(xì)闡述如何編寫BP神經(jīng)網(wǎng)絡(luò),包括
    的頭像 發(fā)表于 07-11 16:44 ?609次閱讀

    請問如何將esp32-idf內(nèi)部的應(yīng)用層網(wǎng)絡(luò)協(xié)議關(guān)聯(lián)到自己寫的網(wǎng)絡(luò)設(shè)備上?

    使用ESP32-IDF里面的應(yīng)用層協(xié)議如MQTT、HTTP。但網(wǎng)絡(luò)設(shè)備是自己添加的4G模塊,請問有沒有類似的應(yīng)用例程,如何將4G網(wǎng)絡(luò)模塊關(guān)聯(lián)到MQTT應(yīng)用層協(xié)議里面。
    發(fā)表于 06-21 13:47

    esp32做了Provisioner,如何備份

    我用esp32做了Provisioner,如何備份?要有需要時,我可以用另一個ESP32
    發(fā)表于 06-21 08:12

    AC/DC電源模塊在通信與網(wǎng)絡(luò)設(shè)備中的應(yīng)用研究

    BOSHIDA AC/DC電源模塊在通信與網(wǎng)絡(luò)設(shè)備中的應(yīng)用研究 隨著通信與網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,通信與網(wǎng)絡(luò)設(shè)備的使用不斷增加。電源作為通信與網(wǎng)絡(luò)設(shè)備的重要組成部分之
    的頭像 發(fā)表于 05-09 13:21 ?500次閱讀
    AC/DC電源模塊在通信與<b class='flag-5'>網(wǎng)絡(luò)設(shè)備</b>中的應(yīng)用研究

    路由器如何解決家庭網(wǎng)絡(luò)設(shè)備卡頓問題

    路由器通過優(yōu)化網(wǎng)絡(luò)信號傳輸、負(fù)載均衡、智能流量管理以及無線信號增強(qiáng)等手段,可以有效地解決家庭網(wǎng)絡(luò)設(shè)備卡頓問題。
    的頭像 發(fā)表于 03-16 11:19 ?1038次閱讀

    網(wǎng)絡(luò)監(jiān)控工具有哪些 網(wǎng)絡(luò)監(jiān)控用幾芯網(wǎng)線

    情況,幫助管理員了解網(wǎng)絡(luò)的使用狀況和流量分布,以便進(jìn)行合理的網(wǎng)絡(luò)設(shè)計和帶寬管理。常見的網(wǎng)絡(luò)流量監(jiān)控工具有Wireshark、NetworkMiner和ntopng等。 Wireshar
    的頭像 發(fā)表于 01-24 10:00 ?1157次閱讀