版權聲明
轉載請與作者聯繫,轉載時請務必標明文章原始出處和作者信息及本聲明。
|
|
|
微信掃瞄二維碼進入 Netkiller 微信訂閲號 QQ群:128659835 請註明“讀者” |
2017-06-16
2014-12-25
我們經常會頻繁的配置網絡設備,但有時候做了某些操作出現了異常,我們不清楚問題出在哪裡,還原配置也不起作用,甚至你根本記得你改動了什麼。
另外我們希望能夠監控網絡設備的配置變化,一個公司可能有很多網絡工程師,他們都有權限操作路由交換或防火牆設備,我們要知道網絡設備配置什麼時候發生了變化,並通知其他幾位同事。同時我們要對修改操作記錄歸檔,方便日後查閲。
我們每隔一段時間便將網絡設備的配置導出存檔,然後通過版本控制工具進行版本化管理,遠離非常簡單。
有了版本控制我們可能很方便的回撤操作。下面我來詳細講解怎樣安裝于配置該軟件
$ git clone https://github.com/netkiller/logging.git $ cd logging $ python3 setup.py sdist $ python3 setup.py install $ sudo apt-get install expect $ sudo chmod +x /usr/local/libexec/*
配置網絡設備地址
打開 /usr/local/bin/cisco 檔案,修改BACKUP_DIR,改為你的備份目錄
$ vim /usr/local/bin/cisco CFGFILE=$BASEDIR/etc/cisco.conf BACKUP_DIR=~/.backup $ cat /usr/local/etc/cisco.conf 192.168.50.1 mgmt EBopQ1X2vMkrl M8YJxvDiddG6QK 192.168.50.2 mgmt EBopQ1X2vMkrl M8YJxvDiddG6QK 192.168.50.3 mgmt EBopQ1X2vMkrl M8YJxvDiddG6QK 192.168.50.4 mgmt EBopQ1X2vMkrl M8YJxvDiddG6QK $ sudo chmod 600 /usr/local/etc/cisco.conf
編輯/usr/local/etc/cisco.conf檔案,格式如下:
host | username | password | enable password
初始化版本倉庫
# Initialized empty Git repository in local. $ cisco init # Initialized empty Git repository from remote. $ cisco init http://xxx.xxx.xxx.xxx/project/xxxx.git $ cisco init user@host:/project/xxxx.git
啟動,停止等操作
$ cisco Usage: /usr/local/bin/cisco {init|start|stop|status|restart} # cisco start # cisco stop
查看網絡設備配置變化
查看當前與上一個版本的變化
$ cd your_backup_dir $ git diff HEAD HEAD~ route.running-config
查看當前與前面第三個版本的變化
$ cd your_backup_dir $ git diff HEAD HEAD~3 route.running-config
該程序主要是備份網絡設備的配置檔案,當然也能起到監控做用,但備份間隔時間需要根據你的情況設定,如果太頻繁也不太好,間隔太長可能起不到很好的監控作用。
關於監控與報警,你可以通過git diff 命令對比與上次配置檔案的變化,通常是沒有變化的,一旦發生變化便通過電子郵件與短信發出警報。至于怎麼實現,不再本文討論範圍,有興趣可以參考筆者的其他技術手札。
關於版本控制軟件更多細節,延伸閲讀《Netkiller Version 手札》