自動(dòng)化運(yùn)維工具在云計(jì)算環(huán)境中的實(shí)踐_第1頁(yè)
自動(dòng)化運(yùn)維工具在云計(jì)算環(huán)境中的實(shí)踐_第2頁(yè)
自動(dòng)化運(yùn)維工具在云計(jì)算環(huán)境中的實(shí)踐_第3頁(yè)
自動(dòng)化運(yùn)維工具在云計(jì)算環(huán)境中的實(shí)踐_第4頁(yè)
自動(dòng)化運(yùn)維工具在云計(jì)算環(huán)境中的實(shí)踐_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 自動(dòng)化運(yùn)維工具 SaltStack 在云計(jì)算環(huán)境中的實(shí)踐隨著云計(jì)算技術(shù)的快速普及與發(fā)展,越來(lái)越多的企業(yè)開(kāi)始學(xué)習(xí)和搭建自己的云平臺(tái)代替?zhèn)鹘y(tǒng)的 IT 交付模式,企業(yè)的 IT 環(huán)境也隨之越來(lái)越復(fù)雜,常規(guī)的運(yùn)維方法與技術(shù)已經(jīng)無(wú)法滿足現(xiàn)在云環(huán)境中系統(tǒng)的配置與變更。基于云計(jì)算的發(fā)展,大數(shù)據(jù)、認(rèn)知技術(shù)及容器技術(shù)也在企業(yè)中得到了越來(lái)越多的應(yīng)用,大量的服務(wù)器管理操作、配置變更被頻繁的執(zhí)行與部署,以應(yīng)對(duì)多變的業(yè)務(wù)需求。按照常規(guī)的方式,運(yùn)維人員需逐個(gè)服務(wù)器進(jìn)行配置調(diào)整,手動(dòng)管理大量的系統(tǒng)信息,難免有各種各樣的問(wèn)題及事故發(fā)生。為了避免這樣的風(fēng)險(xiǎn),本文的示例中,筆者將詳細(xì)介紹如何使用開(kāi)源軟件 SaltStack 自動(dòng)

2、化運(yùn)維工具對(duì)云環(huán)境中的服務(wù)器進(jìn)行命令的遠(yuǎn)程執(zhí)行及配置管理,確保操作的安全性及高效性,降低管理員的操作風(fēng)險(xiǎn)。本文中介紹的架構(gòu),主要是在 CentOS6.5 上進(jìn)行集中部署與測(cè)試。該架構(gòu)主要涉及到三 個(gè)開(kāi)源軟件,分別是 Python 軟件集,SaltStack 軟件集和 ZeroMQ 消息隊(duì)列軟件。在部署 SaltStack 軟件之前,一定要先正確安裝 python,因?yàn)?SaltStack 是由 python 所編寫(xiě)。不同版本的 SaltStack 需要使用不同版本的 Python 進(jìn)行匹配,避免不必要的兼容性問(wèn)題發(fā)生,本文將采用 python2.6.6。SaltStack 軟件是一個(gè) CS 架

3、構(gòu)的軟件,通過(guò)管理端下發(fā)指令,客戶(hù)端接受指令的方式進(jìn)行操作。ZeroMQ 是一款消息隊(duì)列軟件,SaltStack 通過(guò)消息隊(duì)列來(lái)管理成千上萬(wàn)臺(tái)主機(jī)客戶(hù)端,傳輸指令執(zhí)行相關(guān)的操作。而且采用 RSA key 方式進(jìn)行身份確認(rèn),傳輸采用 AES 方式進(jìn)行加密,這使得它的安全性得到了保證。下面我將詳細(xì)介紹 SaltStack 軟件的概念與工作機(jī)制。SaltStack 的基本概念與工作原理SaltStack 本身是一種開(kāi)源的基礎(chǔ)架構(gòu)集中化管理平臺(tái),相比其它商業(yè)產(chǎn)品,其部署及配置稍顯復(fù)雜。為了更好的部署和配置 SaltStak,本章節(jié)將著重介紹它的基本概念、特性與工作原理。SaltStack 簡(jiǎn)介與特性S

4、altStack 是一種基于 C/S 架構(gòu)的服務(wù)器基礎(chǔ)架構(gòu)集中化管理平臺(tái),管理端稱(chēng)為 Master,客戶(hù)端稱(chēng)為 Minion。SaltStack 具備配置管理、遠(yuǎn)程執(zhí)行、監(jiān)控等功能,一般可以理解為是簡(jiǎn)化版的 Puppet 和加強(qiáng)版的 Func。SaltStack 本身是基于 Python 語(yǔ)言開(kāi)發(fā)實(shí)現(xiàn),結(jié)合了輕量級(jí)的消息隊(duì)列軟件 ZeroMQ 與 Python 第三方模塊(Pyzmq、PyCrypto、Pyjinjia2、python-msgpack 和 PyYAML 等)構(gòu)建。通過(guò)部署 SaltStack 環(huán)境,運(yùn)維人員可以在成千上萬(wàn)臺(tái)服務(wù)器上做到批量執(zhí)行命令,根據(jù)不同的業(yè)務(wù)特性進(jìn)行配置集中

5、化管理、分發(fā)文件、采集系統(tǒng)數(shù)據(jù)及軟件包的安裝與管理等。SaltStack 具有以下特性,幫助企業(yè) IT 更好的實(shí)現(xiàn)系統(tǒng)批量管理。部署簡(jiǎn)單、管理方便;支持大部分的操作系統(tǒng),如 UnixLinuxWindows 環(huán)境;架構(gòu)上使用C/S管理模式,易于擴(kuò)展;配置簡(jiǎn)單、功能覆蓋廣;主控端(Master)與被控端(Minion)基于證書(shū)認(rèn)證,確保安全可靠的通信;支持 API 及自定義 Python 模塊,輕松實(shí)現(xiàn)功能擴(kuò)展;SaltStack 的工作原理SaltStack 采用 C/S 結(jié)構(gòu)來(lái)對(duì)云環(huán)境內(nèi)的服務(wù)器操作管理及配置管理。為了更好的理解它的工作方式及管理模型,本章將通過(guò)圖形方式對(duì)其原理進(jìn)行闡述。Sa

6、ltStack 客戶(hù)端(Minion)在啟動(dòng)時(shí),會(huì)自動(dòng)生成一套密鑰,包含私鑰和公鑰。之后將公鑰發(fā)送給服務(wù)器端,服務(wù)器端驗(yàn)證并接受公鑰,以此來(lái)建立可靠且加密的通信連接。同時(shí)通過(guò)消息隊(duì)列 ZeroMQ 在客戶(hù)端與服務(wù)端之間建立消息發(fā)布連接。具體通信原理圖,如圖 1 所示,命令執(zhí)行如圖 2 所示:圖 1.SaltStack 通信原理圖專(zhuān)業(yè)術(shù)語(yǔ)說(shuō)明:Minion 是 SaltStack 需要管理的客戶(hù)端安裝組件,會(huì)主動(dòng)去連接 Master 端,并從 Master 端得到資源狀態(tài)信息,同步資源管理信息。Master 作為控制中心運(yùn)行在主機(jī)服務(wù)器上,負(fù)責(zé) Salt 命令運(yùn)行和資源狀態(tài)的管理。ZeroMQ

7、是一款開(kāi)源的消息隊(duì)列軟件,用于在 Minion 端與 Master 端建立系統(tǒng)通信橋梁。Daemon 是運(yùn)行于每一個(gè)成員內(nèi)的守護(hù)進(jìn)程,承擔(dān)著發(fā)布消息及通信端口監(jiān)聽(tīng)的功能。圖 2.SaltStack 操作執(zhí)行原理圖原理圖說(shuō)明:Minion 是 SaltStack 需要管理的客戶(hù)端安裝組件,會(huì)主動(dòng)去連接 Master 端,并從 Master 端得到資源狀態(tài)信息,同步資源管理信息。Master 作為控制中心運(yùn)行在主機(jī)服務(wù)器上,負(fù)責(zé) Salt 命令運(yùn)行和資源狀態(tài)的管理。Master 上執(zhí)行某條指令通過(guò)隊(duì)列下發(fā)到各個(gè) Minions 去執(zhí)行,并返回結(jié)果。以上使大家了解了什么是 SaltStack 以及它

8、的通信及執(zhí)行原理,下面將主要介紹本次實(shí)例部署的架構(gòu)設(shè)計(jì)。SaltStack 的架構(gòu)設(shè)計(jì)為了讓大家更好的理解 SaltStack 在云平臺(tái)集中化管理方面的優(yōu)勢(shì),因此,根據(jù)項(xiàng)目的實(shí)際情況繪制了部署架構(gòu)圖,并在文中對(duì)架構(gòu)圖進(jìn)行了詳細(xì)說(shuō)明。如圖 3 所示:圖 3.SaltStack 部署架構(gòu)圖說(shuō)明:SaltStack 的所有被管理客戶(hù)端節(jié)點(diǎn)(如圖 3 所示 DB 和 Web),都是通過(guò)密鑰進(jìn)行加密通信,使用端口為 4506??蛻?hù)端與服務(wù)器端的內(nèi)容傳輸,是通過(guò)消息隊(duì)列完成,使用端口為 4505。Master 可以發(fā)送任何指令讓 Minion 執(zhí)行,salt 有很多可執(zhí)行模塊,比如說(shuō) CMD 模塊,在安裝

9、 minion 的時(shí)候已經(jīng)自帶了,它們通常位于你的 python 庫(kù)中,locate salt | grep /usr/可以看到 salt 自帶的所有東西。為了更好的理解架構(gòu)用意,以下將展示主要的命令發(fā)布過(guò)程。 1.SaltStack 的 Master 與 Minion 之間通過(guò) ZeroMq 進(jìn)行消息傳遞,使用了 ZeroMq 的發(fā)布訂閱模式,連接方式包括 TCP 和 IPC。 2.Salt 命令,將 cmd.run ls 命令從 salt.client.LocalClient.cmd_cli 發(fā)布到 Master,獲取一個(gè) Jodid,根據(jù) jobid 獲取命令執(zhí)行結(jié)果。 3.Master

10、 接收到命令后,將要執(zhí)行的命令發(fā)送給客戶(hù)端 minion。 4.Minion 從消息總線上接收到要處理的命令,交給 minion._handle_aes 處理。 5.Minion._handle_aes 發(fā)起一個(gè)本地線程調(diào)用 cmdmod 執(zhí)行 ls 命令。線程執(zhí)行完 ls 后,調(diào)用 Minion._return_pub 方法,將執(zhí)行結(jié)果通過(guò)消息總線返回給 master。 6.Master 接收到客戶(hù)端返回的結(jié)果,調(diào)用 master.handle_aes 方法將結(jié)果寫(xiě)的文件中。 7.Salt.client.LocalClient.cmd_cli 通過(guò)輪詢(xún)獲取 Job 執(zhí)行結(jié)果,將結(jié)果輸出到終端

11、。SaltStack 的安裝與配置對(duì) SaltStack 有了一個(gè)初步的了解之后,您將在本章通過(guò)實(shí)際案例操作進(jìn)一步了解 SaltStack。本章節(jié)一共分為三個(gè)部分,分別介紹安裝環(huán)境的說(shuō)明,具體安裝及安裝后的 SaltStack 配置。SaltStack 的環(huán)境說(shuō)明由于受到硬件資源限制,測(cè)試環(huán)境將采用三臺(tái)服務(wù)器進(jìn)行部署,分別扮演不同的角色,詳細(xì)信息如表 1 所示。表 1.SaltStack 環(huán)境說(shuō)明SaltStack 的安裝目前 SaltStack 支持很多平臺(tái)的部署,具體到每個(gè)平臺(tái)的安裝部署,可以參考官方文件。本實(shí)例中將主要介紹基于 CentOS 平臺(tái)的安裝部署。依賴(lài)組件的安裝由于 SaltS

12、tack 是開(kāi)源軟件,其很多功能是依賴(lài)其它的軟件包來(lái)完成。所以我們?cè)诎惭b SaltStack 之前需要先將以下表 2 中的依賴(lài)軟件包安裝到主機(jī)上,避免因?yàn)槿鄙僖蕾?lài)關(guān)系而產(chǎn)生錯(cuò)誤。表 2. 依賴(lài)軟件包為了方便依賴(lài)包的安裝,本章將采用 YUM 的方式進(jìn)行安裝。首先下載并安裝 epel 源,執(zhí)行以下指令,將 epel.repo 存儲(chǔ)到/etc/yum.repos.d 目錄下。wget o /etc/yum.repos.d/epel.repo/repo/epel-6.repo。并通過(guò) Yum list 命令來(lái)校驗(yàn)安裝源是否生效,如出現(xiàn)圖 4 所示,則表明Yum源已經(jīng)生效。圖 4.SaltStack 安

13、裝源建立好安裝源及解決了軟件包依賴(lài)關(guān)系之后,下一步將介紹如何安裝 Saltstack master 主機(jī)。Master 角色的安裝如上表 2,已經(jīng)清晰的列出需要依賴(lài)哪些安裝包確保 master 的成功安裝。配置好 yum 源之后,只需要輸入以下命令(如圖 5 所示),就可以在自動(dòng)安裝 SaltStack 的同時(shí),將依賴(lài)包安裝好。圖 5.SaltStack master 主機(jī)安裝安裝完成后,輸入 chkconfig salt-master on 將 master 服務(wù)加入到開(kāi)機(jī)啟動(dòng)項(xiàng),這樣每次系統(tǒng)啟動(dòng),都會(huì)自動(dòng)加載 master 服務(wù)。輸入 service salt-master start 啟

14、動(dòng) master 服務(wù)。之后通過(guò) netstat antp 查詢(xún)服務(wù)狀態(tài),結(jié)果如圖 6 所示。圖 6.SaltStack master 服務(wù)查詢(xún)依照本節(jié)介紹來(lái)看,master 服務(wù)已經(jīng)被正確安裝并啟動(dòng),下面將介紹如何安裝 SaltStack-Minion 到客戶(hù)端服務(wù)器。Minion 角色的安裝SaltStack 是一個(gè) C/S 結(jié)構(gòu)的開(kāi)源軟件,Master 通過(guò)客戶(hù)端軟件 Minion 進(jìn)行指令的執(zhí)行與策略的配置。如圖 7 所示,通過(guò) yum install 命令安裝 Minion 客戶(hù)端。圖 7.SaltStack Minion 主機(jī)安裝安裝完成后,輸入 chkconfig salt-mi

15、nion on,將 minion 服務(wù)加入到開(kāi)機(jī)啟動(dòng)項(xiàng),這樣每次系統(tǒng)啟動(dòng),都會(huì)自動(dòng)加載 minion 服務(wù)。輸入 service salt-minion start,啟動(dòng) minion 服務(wù)。之后通過(guò) netstat antp 查詢(xún)服務(wù)狀態(tài),結(jié)果如圖 8 所示。圖 8.SaltStack Minion 服務(wù)查詢(xún)到目前為止,SaltStack 的安裝工作已經(jīng)完成,Master 和 Minion 主機(jī)服務(wù)都已經(jīng)正確開(kāi)啟,端口服務(wù)正常。下一章將主要介紹如何配置 SaltStack,使其可以正常的提供各種功能。SaltStack 的配置SaltStack 的配置主要集中在 Master 主機(jī)端,客戶(hù)端

16、的配置較少,本章將通過(guò)以下兩部分詳細(xì)介紹。Minion 端配置SaltStack-Minion 是 SaltStack 安裝在客戶(hù)端的代理,負(fù)責(zé)接收服務(wù)器端發(fā)布的指令并執(zhí)行,同時(shí)負(fù)責(zé)客戶(hù)端的狀態(tài)監(jiān)控。客戶(hù)端要想被 master 管理,需要修改其配置文件,將服務(wù)器指向到 Master 的地址。其配置文件位于/etc/salt/目錄下,名為 minion,通過(guò) vi 工具修改,如圖 9 所示。圖 9.SaltStack Minion 配置配置完成后,保存并通過(guò) service salt-minon restart 命令重啟 minion 服務(wù)。本次測(cè)試案例,并不需要其它高級(jí)功能的演示,所以客戶(hù)端到

17、此配置結(jié)束,更多功能的配置,請(qǐng)參考SaltStack 官方手冊(cè)。Master 端配置SaltStack-Master 是 SaltStack 組件的核心服務(wù),負(fù)責(zé)發(fā)布指令及配置文件的分發(fā)與管理,及客戶(hù)端的管理功能。Master 要想正常提供服務(wù),需要接受客戶(hù)端的證書(shū)認(rèn)證請(qǐng)求。我們之前已經(jīng)介紹過(guò),SaltStack 是通過(guò) SSL 證書(shū)認(rèn)證的方式進(jìn)行通信的。如圖 10 所示操作,輸入 salt-key l 來(lái)查詢(xún)客戶(hù)端證書(shū)狀態(tài),并如圖 11 所示操作,輸入 salt-key A 接受客戶(hù)端認(rèn)證。圖 10.SaltStack 證書(shū)查詢(xún)從圖中可以看到客戶(hù)端被發(fā)現(xiàn),但是處于未被接受狀態(tài),需要管理員執(zhí)行

18、圖 11 所示指令,進(jìn)行接受。圖 11.SaltStack 接受證書(shū)至此我們已經(jīng)完成 SaltStack 的全部配置,在下一章中,將通過(guò)幾個(gè)測(cè)試場(chǎng)景來(lái)說(shuō)明 SaltStack 在云管理平臺(tái)的重要功能。SaltStack 測(cè)試通過(guò)本章節(jié)中的兩個(gè)測(cè)試案例,可以驗(yàn)證 SaltStack 是否運(yùn)行正常,是否可以完成預(yù)定的功能。我們可以通過(guò) salt * test.ping 來(lái)測(cè)試客戶(hù)端是否在線,并被 master 管理,如圖 12 所示,如果返回 True,則說(shuō)明客戶(hù)端已經(jīng)被 master 管理,并處于在線狀態(tài)。圖 12.SaltStack 接受證書(shū)接下來(lái),我們將通過(guò)批量執(zhí)行命令和批量安裝軟件,來(lái)測(cè)試 SaltStack 的部分功能。批量執(zhí)行命令在日常運(yùn)維中,同時(shí)對(duì)多臺(tái)服務(wù)器進(jìn)行操作,是一個(gè)很平常的需求。比如批量執(zhí)行 ping 操作,驗(yàn)證服務(wù)器是否在線,批量執(zhí)行查詢(xún)命令,看服務(wù)器的負(fù)載及利用率。如圖 13 所示的指令為批量查詢(xún)服務(wù)器操作系統(tǒng)的版本。圖 13.SaltStack 查詢(xún)服務(wù)器的 IP 信息*代表對(duì)所有的被管理客戶(hù)端進(jìn)行操作,cmd.run 是命令調(diào)用模塊,ifconfig 是具體的執(zhí)行命令。批量安裝軟件批量安裝軟件也是日常運(yùn)維中的家常便飯,我們可以通過(guò) SaltStack 的軟件推送功能,對(duì)所管理的服務(wù)器進(jìn)行進(jìn)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論