CMDB項目(一)—— CMDB和運維


CMDB和運維

一、傳統運維和自動化運維

1、傳統運維

  • 日常工作繁瑣
  • 應用運行環境不統一
  • 運維及部署效率低下
  • 無用報警信息過多
  • 資產管理和應用管理混亂

2、自動化運維

  • OS的選擇統一化,同一個項目使用同樣的OS系統部署其所需要的各類軟件
  • 軟件安裝標准化,例如JAVA虛擬機,php,nginx,mysql等各類應用需要的軟件版本,安裝目錄,數據存放目錄,日志存放目錄等
  • 應用包目錄統一標准化,及應用命名標准化
  • 啟動腳本統一目錄和名字,需要變化的部分通過參數傳遞
  • 配置文件標准化,需要變化的部分通過參數傳遞
  • 日志輸出,日志目錄,日志名字標准化
  • 應用生成的數據要實現統一的目錄存放
  • 主機/虛擬機命名標准化,虛擬機管理使用標准化模板
  • 使用docker比較容易實現軟件運行環境的標准化

二、項目

1、項目上線

a. 產品經理前期調研 (需求分析)
b. 和開發進行評審
c. 開發進行開發
d. 測試進行測試
e. 交給運維人員進行上線

2、收集服務器元信息

a. excel表格
    缺點: 
        - 人為干預太嚴重
        - 統計的時候也會有問題

b. 搞一個系統(CMDB)
	作用: 自動的幫我收集服務器的信息,並且自動的記錄我們的變更信息

三、CMDB(資產管理系統)

CMDB是所有運維工具的數據基礎

1、CMDB的功能

1. 用戶管理,記錄測試,開發,運維人員的用戶表
2. 業務線管理,需要記錄業務的詳情
3. 項目管理,指定此項目用屬於哪條業務線,以及項目詳情
4. 應用管理,指定此應用的開發人員,屬於哪個項目,和代碼地址,部署目錄,部署集群,依賴的應用,軟件等信息
5. 主機管理,包括雲主機,物理機,主機屬於哪個集群,運行着哪些軟件,主機管理員,連接哪些網絡設備,雲主機的資源池,存儲等相關信息
6. 主機變更管理,主機的一些信息變更,例如管理員,所屬集群等信息更改,連接的網絡變更等
7. 網絡設備管理,主要記錄網絡設備的詳細信息,及網絡設備連接的上級設備
8. IP管理,IP屬於哪個主機,哪個網段, 是否被占用等

2、CMDB的四種實現方式

(1)agent采集

agent方式,可以將服務器上面的Agent程序作定時任務,定時將資產信息提交到指定API錄入數據庫

# agent方式本質:
在各個服務器上執行 subprocess.getoutput() 命令,然后將每台機器上執行的結果,返回給主機API,然后主機API收到這些數據之后,放入到數據庫中,最終通過web界面展現給用戶

# 優缺點:
優點:速度快
缺點:需要為每台服務器部署一個agent腳本

# 使用場景
服務器較多的場景

(2)ssh方式(基於Paramiko模塊)

中控機通過 Paramiko(py模塊) 登錄到各個服務器上,然后執行命令的方式去獲取各個服務器上的信息

# ssh方式本質:
中控機獲取主機列表,登錄服務器主機,利用paramiko模塊獲取服務器信息。中控機將信息發給API,API將結果寫入數據庫。后台管理可以從數據庫中將服務器的信息數據從數據庫中讀出。

# 優缺點:
優點:不用再服務器上部署agent腳本
缺點:速度慢,需要一台中控機登錄服務器

# 使用場景
服務器較少的場景

(3)salt-stack方式

# 本質
中控機將命令放在ZeroMQ隊列中;服務器從隊列中取通過執行:salt.cmd('主機地址', 'ifconfig命令')。服務器執行完命令,將結果(服務器信息)放進另一個隊列中;中控機從結果隊列中取出結果。中控機將服務器信息發給API,后台管理可以從數據庫中將服務器的信息數據從數據庫中讀出。

# 優缺點
優點:速度快, 開發成本低
缺點:每一台需要部署salt-stack

# 使用場景
企業的服務器以前就裝好了salt-stack

(4)Puppet方式(很少用)

Ruby語言開發。
每隔30分鍾,通過RPC消息隊列將執行的結果返回給用戶

四、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服務器上對salve進行遠程操作

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

參考安裝:http://www.cnblogs.com/tim1blog/p/9987313.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM