天天看點

網絡裝置自動備份

參考連結:https://github.com/ytti/oxidized

測試環境:CentOS Linux release 7.3.1611 (Core)

主要元件:oxidized oxidized-script oxidized-web

注意:oxidized-web需要ruby2.3以上支援,如不安裝oxidized-web,配置檔案裡rest 修改為false

安裝依賴元件

  • yum 源修改:本測試環境為辦公網測試機,需要修改yum源,通常建議修改為公司線上或測試環境yum源(可找業務運維幫忙倒出上傳到/etc/yum.repos.d)

    yum install make cmake which sqlite-devel openssl-devel libssh2-devel ruby gcc ruby-devel libicu-devel gcc-c++

    安裝ruby

    centos7預設ruby為2.0版本,需要單獨安裝。

    yum install centos-release-scl

    yum-config-manager --enable rhel-server-rhscl-7-rpms

    yum install -y rh-ruby25-ruby-devel

    yum install rh-ruby25

    scl enable rh-ruby25 bash

    ruby -v

    ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-linux]

    cp /opt/rh/rh-ruby25/root/usr/lib64/libruby.so.2.5 /usr/lib/

    設定登入時自動啟動ruby2.5:

    vim /etc/profile.d/rh-ruby25.sh

    #!/bin/bash

    source /opt/rh/rh-ruby25/enable

    export X_SCLS="

    scl enable rh-ruby25 'echo $X_SCLS'

    "

    export PATH=$PATH:/opt/rh/rh-ruby25/root/usr/local/bin

    安裝oxidized

    gem install oxidized

    gem install oxidized-script oxidized-web

    useradd -m -d /home/oxidized oxidized

    cp /opt/rh/rh-ruby25/root/usr/local/share/gems/gems/oxidized-0.24.0/extra/oxidized.service /lib/systemd/system

    mkdir -p /home/oxidized/.config/oxidized

    mkdir /home/oxidized/.config/oxidized/logs/

    mkdir /home/oxidized/.config/oxidized/configs

    chown oxidized:oxidized /home/oxidized/.config/oxidized

    config 檔案

    username: username

    password: password

    model: junos

    interval: 3600

    log: /home/oxidized/.config/oxidized/logs/oxidized.log

    debug: false

    threads: 30

    timeout: 20

    retries: 3

    prompt: !ruby/regexp /^([\w.@-]+[#>]\s?)$/

    rest: 127.0.0.1:8888

    next_adds_job: false

    vars: {}

    groups: {}

    models: {}

    pid: "/home/oxidized/.config/oxidized/pid"

    input:

    default: ssh, telnet

    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:

    name: 0

    model: 1

    username: 2

    password: 3

    gpg: false

    model_map:

    cisco: ios

    juniper: junos

    router.db 檔案

    vim home/oxidized/.config/oxidized/router.db

    172.18.31.11:comware:user:passwd

    啟動服務

    systemctl restart oxidized.service

    systemctl status oxidized.service

    至此,自動備份基礎功能已完成,可在目錄裡檢視備份的配置檔案,接下來配置可用web頁面檢視比較直覺。

    安裝nginx

yum install nginx

vim /etc/nginx/conf.d/oxidized.conf

cat /etc/nginx/conf.d/oxidized.conf

server {

listen 80;

server_name 172.18.34.45;

location / {

proxy_pass http://127.0.0.1:8888/;

}

  • 浏覽器打開:http://172.18.34.45/nodes
  • Actions 下有3個圖示,第一個點開可看到配置檔案。
  • 第二個versions可檢視每個版本的配置差異。(需要git支援,安裝步驟見下文)
  • 第三個為強制備份。

    預設顯示時間不對,需要修改以下配置檔案。

    vim /opt/rh/rh-ruby25/root/usr/local/share/gems/gems/oxidized-web-0.11.1/lib/oxidized/web/public/scripts/oxidized.js

    git 安裝

    修改配置檔案為git輸出

繼續閱讀