1. 程式人生 > >CMDB功能分析與實現方案

CMDB功能分析與實現方案

CMDB功能分析與實現方案

CMDB系統的主要功能

1.使用者管理,記錄測試,開發,運維人員的使用者表
2.業務線管理,記錄業務的詳情
3.專案管理,指定此專案屬於那一條業務線
4.應用管理,指定此應用的開發人員
5.主機管理,記錄主機管理員,連線的網路裝置,儲存,雲主機,物理主機等資訊
6.主機變更管理,主機的一些變更資訊,例如管理員,連線的網路,硬體裝置更換
7.網路裝置管理,主要記錄網路的詳細資訊
8.IP管理,IP屬於哪個主機,哪個網段,是否被佔用等

總結:

自動的幫助我們收集伺服器的資訊,並且可以自動的記錄我們的變更資訊

CMDB的實現方案

方案一:Agent實現

將agent指令碼做定時任務,定時的將資料傳送給API伺服器然後存入資料庫

(畫圖:https://www.draw.io/)

優點:速度快
缺點:需要在每臺伺服器上都部署agent
使用場景:有大量的伺服器的情況下

方案二:peremiko

中控裝置通過Paramiko模組連線到各個伺服器上,再通過執行命令獲取資料

優點:不用再手動給每一臺伺服器設定agent
缺點:依賴於網路速度慢
使用場景:伺服器較少的情況

方案三:saltstack

與方案二的流程相似,中控機發送命令給伺服器執行。伺服器將結果放入另一個佇列中,中控機獲取將服務資訊傳送到API進而錄入資料庫。

優點:開發成本低
缺點:依賴第三方工具
使用場景:伺服器中安裝使用了saltstack

salt stack安裝

1.安裝和配置

master端:
"""
1. 安裝salt-master
    yum install salt-master
2. 修改配置檔案:/etc/salt/master
    interface: 0.0.0.0    # 表示Master的IP 
3. 啟動
    service salt-master start
"""
slave端:
"""
1. 安裝salt-minion
    yum install salt-minion
2. 修改配置檔案 /etc/salt/minion
    master: 10.211.55.4           # master的地址
    或
    master:
        - 10.211.55.4
        - 10.211.55.5
    random_master: True
    id: c2.salt.com                    # 客戶端在salt-master中顯示的唯一ID
3. 啟動
    service salt-minion start
"""

2.授權

salt-key -L                    # 檢視已授權和未授權的slave
salt-key -a  salve_id      # 接受指定id的salve
salt-key -r  salve_id      # 拒絕指定id的salve
salt-key -d  salve_id      # 刪除指定id的salve

3.執行命令

在master伺服器上對minion進行遠端操作

    
salt 'c2.salt.com' cmd.run  'ifconfig'