CMDB 收集資產資訊之(******收集資產程式碼流程,API的一個認證,資料庫表的一個設計*********)
阿新 • • 發佈:2019-01-11
收集資產程式碼流程
1.起初我們些的程式碼是麵條式的一堆的邏輯判斷。
後來通過了不斷的優化升級實現了一個3種方案都支援的CMDB系統,我們用哪種方案只需要在配置檔案裡修改一下設定就行了。
同時我們借鑑了django的中介軟體設定還實現了可插拔式的功能,這個可插拔式針對的是我們要收集的某些硬體資訊,只需要註釋一下,就可以達到不用搜集了。
2.流程: 1.settings: MODE----->確定哪種方案(【3個方案py檔案】)
確定哪種指令碼(【agent指令碼,ssh(paramiko),saltstack】)本質功能調命令列
可插拔配置---->(需要收集的硬體資訊【每個硬體1個py檔案】)
MODE='agent' #方案一 'agent', 方案二 'ssh',方案三 'salt' DEBUG=True #可插拔配置 PLUGINS_DICT={ 'basic':'src.data.basic.Basic', 'board':'src.data.board.Board', 'cpu':'src.data.cpu.Cpu', 'disk':'src.data.disk.Disk', 'memory':'src.data.memory.Memory', # 'nic':'src.data.nic.Nic', }
2.for迴圈硬體配置,傳入方法:執行相應硬體的linux命令 拿到我們需要收集的資訊
{'basic': {'status': 10000, 'data': {'os_platform': 'linux', 'os_version': 'CentOS release 6.6 (Final)\nKernel \r on an \\m', 'hostname': 'c2.com'}}}
#注意:ssh(hostme 金鑰或伺服器使用者名稱密碼 ),salt方式只需要hostname
#我寫了一個類方法來for迴圈配置檔案,一個方法拿到指令碼方法 ,init定義了hostname,root,pwd等
API的一個認證