2章
利用facter和django快速建構cmdb
作者簡介
陳立軍,金山西山居devops,原新浪研發系統開發。
劉宇,網名守住每一天,金山西山居架構師,《puppet實戰》一書作者,《puppet實戰手冊》譯者之一,《python進階進階》譯者之一,infoq社群編輯,自動化運維專家。
cmdb(configuration management database),又稱配置管理資料庫,更多的時候我們習慣将其稱為資産管理系統。它既是itil标準體系的核心,又是運維的基礎核心系統。它通常位于整個運維自動架構的底層,但在運維自動化體系中,它又起到了極其關鍵性的作用。據我個人了解目前很多中小型企業,乃至一些中大型網際網路公司,都還在采用傳統的excel來管理資産。
采用excel維護資産時,需要耗費大量的人力和精力,這些工作包括:資料的采集、整合、記錄、維護、檢驗和更新,每一項都比較繁瑣。而采用開源cmdb系統卻又不夠靈活,無法和公司的其他系統相結合。面對這些問題,自行研發一套适用于公司的cmdb系統,是當務之急。
本章将會詳細講解,如何利用開源軟體facter和django快速建構一個小型的cmdb系統。界面與功能不算複雜,這也是它輕量的展現,本章更多的是提供一種思路,以達到抛磚引玉的作用,僅供大家參考。
本章的所有代碼都托管在github網站上https://github.com/oysterclub/open-cmdb。其中腳本集中在cmdb目錄中。
<b>2.1 cmdb簡介</b>
<b></b>
cmdb用于存儲和管理企業it架構中各種裝置的配置資訊,其中包括主機、項目、使用者、機房、網絡等。其被認為是itil服務管理的核心,所有流程所需要使用的配置資訊都将通過cmdb來進行擷取,例如監控、dashboard、自動化、流程等。cmdb在企業it架構中的核心地位如圖2-1所示。
圖2-1 cmdb的核心地位
cmdb特性如下:
裝置資訊統一化、标準化。
裝置資訊可維護性更強。
裝置資訊關系清晰化、可視化。
裝置資訊的查詢、更新更快。
當然,在實際生産中,會對上述特性和涵蓋範圍有輕重大小的區分,為了能夠更加合理、更加準确地設計出适合自有業務模式的cmdb,下面我們來看下幾大主流開源cmdb是如何設計的。