配置管理數據庫方案

CMDB實現的四種方式

1.Agent腳本實現html

本質:就是在各個服務器經過python運行腳本里的命令(用到了subprocess模塊),而後將每臺機器上執行的結果,返回給主機API,而後主機API收到這些數據以後,放入到數據庫中,最終經過web界面展示給用戶

 

2.SSH實現方式python

本質:中控機經過Paramiko(py模塊)登陸到各個服務器上,而後執行命令的方式去獲取各個服務器上的信息。(Paramiko,ansible和shell都是經過SSH遠程鏈接服務器的)

 

服務器比較少,能夠用下面方法實現web

import paramiko
# 建立SSH對象
ssh = paramiko.SSHClient()
# 容許鏈接不在know_hosts文件中的主機
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 鏈接服務器
ssh.connect(hostname='10.0.0.100', port=22, username='root', password=1)
# 執行命令
stdin, stdout, stderr = ssh.exec_command('ifconfig')
# 獲取命令結果
result = stdout.read()
print(result)
# 關閉鏈接
ssh.close()

3.saltstack方式shell

本質:和第二種方案大體是差很少的流程,中控機發送命令給服務器執行。服務器將結果放入另外一個隊列中,中控機獲取將服務信息發送到API進而錄入數據庫。

(1)saltstack安裝配置數據庫

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.0.0.100           # 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)受權ruby

"""
salt-key -L                # 查看已受權和未受權的slave
salt-key -A                # 受權全部
salt-key -a  salve_id      # 接受指定id的salve
salt-key -r  salve_id      # 拒絕指定id的salve
salt-key -d  salve_id      # 刪除指定id的salve
等命令
"""

(3)執行命令服務器

salt 'localhost' cmd.run  'ifconfig'

基於API方式(有點兼容問題)網絡

import salt.client
local = salt.client.LocalClient()
result = local.cmd('10.0.0.200', 'cmd.run', ['ifconfig'])

安裝使用參考dom

詳細1 詳細2ssh

4.Puppet(ruby語言開發)(很老)

每多少分鐘,經過RPC消息隊列將執行結果返回

 各類方式應用

三種CMDB採集的方案:
        agent方式採集: 
            場景: 服務器比較多
            缺點: 須要每一臺服務器上部署
            優勢: 速度快
            
        ssh類(parmiko fabric ansible):
            缺點: 速度慢(經過ssh登錄[要有網絡]到服務器上執行命令返回數據)須要一臺中控機
            優勢: 不須要部署agent腳本
            場景: 服務器比較少
            
        salt-stack方式:
            缺點: 每一臺須要部署這個軟件
            優勢: 速度快, 開發成本低
            場景: 企業以前已經在用
相關文章
相關標籤/搜索