一、什麼是Oxidized?
Oxidized是一個Ruby編寫的開源項目,它能夠幫助我們備份網絡設備配置文件並進行版本控制。它通過SSH和Telnet來連接網絡設備,將設備的配置信息備份在本地磁盤中,並通過Git等工具來進行版本控制。
Oxidized在備份之前會通過Netmiko、Net::SSH和Net::Telnet等庫來連接網絡設備,並通過YAML配置文件來實現管理。它能夠支持大部分經典網絡設備廠商的設備,包括Cisco、Juniper、H3C、華為等。
與其他備份工具相比,Oxidized最大的特點是自動化。它能夠根據設備的模板自動備份,並將備份結果存儲在本地和遠程Git倉庫中,從而方便用戶進行版本管理和比對。
二、Oxidized的安裝與配置
Oxidized的安裝非常簡單,只需要在Linux/Mac操作系統上執行類似以下命令即可:
sudo apt-get install ruby ruby-dev libsqlite3-dev libssl-dev pkg-config cmake
sudo gem install oxidized oxidized-script oxidized-web
安裝過程可能需要花費一些時間,具體時間取決於網絡速度和計算機配置。
安裝完畢後,我們需要進行一些配置。首先,在編寫配置文件前,我們需要創建一個獨立的用戶,用來運行Oxidized以避免權限問題。在Ubuntu/Debian系統中,可以通過以下命令來創建:
sudo adduser oxidized
sudo usermod -aG sudo oxidized
接下來,我們需要創建Oxidized的配置文件。Oxidized的配置文件是由YAML格式編寫的,它定義了網絡設備和Git倉庫的相關信息。以下是一個簡單的配置文件:
username: oxidized
password: SECRET_PASSWORD
model: cisco
interval: 3600
use_syslog: false
debug: false
threads: 30
rest:
listen: 0.0.0.0:8888
secure: false
input:
default: ssh, telnet
ssh:
secure: false
output:
default: git
git:
user: oxidized
email: oxidized@example.com
repo: "/home/oxidized/network-configs"
branch: master
private_key: /home/oxidized/.ssh/id_rsa
clone_dir: /home/oxidized/clone-configs
cron:
- description: Backup every 6 hours
hour: "*"
minute: "0,10,20,30,40,50"
day: "*"
month: "*"
weekday: "*"
在配置文件中,我們需要定義相應的用戶名、密碼、設備型號和備份周期等信息。其中,Git的配置信息是比較重要的。在上面的例子中,我們將備份結果存儲在/home/oxidized/network-configs目錄中,並通過Git進行版本控制。
三、Oxidized的使用與維護
使用Oxidized非常簡單,只需要執行以下命令即可開始備份:
oxidized
當然,我們還可以將Oxidized作為服務來運行,以便自動啟動和管理。以下是一個systemd的配置文件示例:
[Unit]
Description=Oxidized
After=network-online.target
[Service]
User=oxidized
ExecStart=oxidized
Restart=always
RestartSec=3
[Install]
WantedBy=multi-user.target
維護Oxidized也非常簡單。我們只需要定期檢查備份結果,保證Git倉庫的正常運行,即可避免備份失敗和數據丟失的問題。
另外,Oxidized還支持多種插件,例如提示插件、郵件通知插件和Web界面插件等。這些插件能夠進一步擴展Oxidized的功能和適應更多的需求。
四、總結
Oxidized是一款非常實用的自動化備份工具,它能夠幫助我們備份網絡設備配置並進行版本控制。相比於手動備份,它能夠大大減輕管理難度和工作量。
雖然Oxidized的安裝和配置可能比較繁瑣,但是一旦配置好,它就能夠長期穩定地運行,並為我們帶來實實在在的好處。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/153737.html