1. 程式人生 > >CMDB 收集資產資訊之(******收集資產程式碼流程,API的一個認證,資料庫表的一個設計*********)

CMDB 收集資產資訊之(******收集資產程式碼流程,API的一個認證,資料庫表的一個設計*********)

收集資產程式碼流程

  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的一個認證