溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

自動(dòng)化運(yùn)維工具SaltStack在云計(jì)算環(huán)境中的實(shí)踐是怎樣的

發(fā)布時(shí)間:2022-01-15 10:59:25 來(lái)源:億速云 閱讀:138 作者:柒染 欄目:互聯(lián)網(wǎng)科技

這篇文章將為大家詳細(xì)講解有關(guān)自動(dòng)化運(yùn)維工具SaltStack在云計(jì)算環(huán)境中的實(shí)踐是怎樣的,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guā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)化運(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ì)列軟件。

  • 部署簡(jiǎn)單、管理方便;

  • 支持大部分的操作系統(tǒng),如 Unix/Linux/Windows 環(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)行闡述。

    SaltStack 客戶端(Minion)在啟動(dòng)時(shí),會(huì)自動(dòng)生成一套密鑰,包含私鑰和公鑰。之后將公鑰發(fā)送給服務(wù)器端,服務(wù)器端驗(yàn)證并接受公鑰,以此來(lái)建立可靠且加密的通信連接。同時(shí)通過(guò)消息隊(duì)列 ZeroMQ 在客戶端與服務(wù)端之間建立消息發(fā)布連接。具體通信原理圖,如圖 1 所示,命令執(zhí)行如圖 2 所示:

    圖 1.SaltStack 通信原理圖
    自動(dòng)化運(yùn)維工具SaltStack在云計(jì)算環(huán)境中的實(shí)踐是怎樣的
  • Minion 是 SaltStack 需要管理的客戶端安裝組件,會(huì)主動(dòng)去連接 Master 端,并從 Master 端得到資源狀態(tài)信息,同步資源管理信息。

  • Master 作為控制中心運(yùn)行在主機(jī)服務(wù)器上,負(fù)責(zé) Salt 命令運(yùn)行和資源狀態(tài)的管理。

  • ZeroMQ 是一款開(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í)行原理圖

自動(dòng)化運(yùn)維工具SaltStack在云計(jì)算環(huán)境中的實(shí)踐是怎樣的

  • Minion 是 SaltStack 需要管理的客戶端安裝組件,會(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 以及它的通信及執(zhí)行原理,。

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)圖

自動(dòng)化運(yùn)維工具SaltStack在云計(jì)算環(huán)境中的實(shí)踐是怎樣的

  • SaltStack 的所有被管理客戶端節(jié)點(diǎn)(如圖 3 所示 DB 和 Web),都是通過(guò)密鑰進(jìn)行加密通信,使用端口為 4506??蛻舳伺c服務(wù)器端的內(nèi)容傳輸,是通過(guò)消息隊(duì)列完成,使用端口為 4505。Master 可以發(fā)送任何指令讓 Minion 執(zhí)行,salt 有很多可執(zhí)行模塊,比如說(shuō) CMD 模塊,在安裝 minion 的時(shí)候已經(jīng)自帶了,它們通常位于你的 python 庫(kù)中,locate salt | grep /usr/ 可以看到 salt 自帶的所有東西。

  • 為了更好的理解架構(gòu)用意,以下將展示主要的命令發(fā)布過(guò)程:

    軟件名 功能
    Python 2.6軟件包 Python主安裝文件
    PyYAML軟件包 SaltStack 配置解析定義語(yǔ)法
    Msgpack-python SaltStack 消息交換庫(kù)
    Jinjia2 SaltStack states 配置模版
    MarkupSafe python Unicode 轉(zhuǎn)換庫(kù)
    Apache-libcloud SaltStack 對(duì)云架構(gòu)編排庫(kù)
    ZeroMQ SaltStack 消息系統(tǒng)
    Pyzm ZeroMQ python 庫(kù)
    PyCryto Python 密碼庫(kù)
    M2Cryto Openssl Python 包裝庫(kù)
    Requests HTTP Python 庫(kù)

    為了方便依賴包的安裝,本章將采用 YUM 的方式進(jìn)行安裝。

    首先下載并安裝 epel 源,執(zhí)行以下指令,將 epel.repo 存儲(chǔ)到/etc/yum.repos.d 目錄下。

     wget –o /etc/yum.repos.d/epel.repohttp://mirrors.aliyun.com/repo/epel-6.repo

    并通過(guò) Yum list 命令來(lái)校驗(yàn)安裝源是否生效,如出現(xiàn)圖 4 所示,則表明Yum源已經(jīng)生效。

    圖 4.SaltStack 安裝源
    自動(dòng)化運(yùn)維工具SaltStack在云計(jì)算環(huán)境中的實(shí)踐是怎樣的


    安裝完成后,輸入 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 啟動(dòng) master 服務(wù)。之后通過(guò) netstat –antp 查詢服務(wù)狀態(tài),結(jié)果如圖 6 所示。

    圖 6.SaltStack master 服務(wù)查詢
    自動(dòng)化運(yùn)維工具SaltStack在云計(jì)算環(huán)境中的實(shí)踐是怎樣的


    安裝完成后,輸入 chkconfig salt-minion 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 查詢服務(wù)狀態(tài),結(jié)果如圖 8 所示。

    圖 8.SaltStack Minion 服務(wù)查詢
    自動(dòng)化運(yùn)維工具SaltStack在云計(jì)算環(huán)境中的實(shí)踐是怎樣的

    到目前為止,SaltStack 的安裝工作已經(jīng)完成,Master 和 Minion 主機(jī)服務(wù)都已經(jīng)正確開(kāi)啟,端口服務(wù)正常。下一章將主要介紹如何配置 SaltStack,使其可以正常的提供各種功能。

    SaltStack 的配置

    SaltStack 的配置主要集中在 Master 主機(jī)端,客戶端的配置較少,本章將通過(guò)以下兩部分詳細(xì)介紹。

    Minion 端配置

    SaltStack-Minion 是 SaltStack 安裝在客戶端的代理,負(fù)責(zé)接收服務(wù)器端發(fā)布的指令并執(zhí)行,同時(shí)負(fù)責(zé)客戶端的狀態(tài)監(jiān)控??蛻舳艘氡?master 管理,需要修改其配置文件,將服務(wù)器指向到 Master 的地址。其配置文件位于/etc/salt/目錄下,名為 minion,通過(guò) vi 工具修改,如圖 9 所示。

    圖 9.SaltStack Minion 配置
    自動(dòng)化運(yùn)維工具SaltStack在云計(jì)算環(huán)境中的實(shí)踐是怎樣的


    配置完成后,保存并通過(guò) service salt-minon restart 命令重啟 minion 服務(wù)。本次測(cè)試案例,并不需要其它高級(jí)功能的演示,所以客戶端到此配置結(jié)束,更多功能的配置,請(qǐng)參考SaltStack 官方手冊(cè)。

    Master 端配置

    SaltStack-Master 是 SaltStack 組件的核心服務(wù),負(fù)責(zé)發(fā)布指令及配置文件的分發(fā)與管理,及客戶端的管理功能。Master 要想正常提供服務(wù),需要接受客戶端的證書(shū)認(rèn)證請(qǐng)求。我們之前已經(jīng)介紹過(guò),SaltStack 是通過(guò) SSL 證書(shū)認(rèn)證的方式進(jìn)行通信的。如圖 10 所示操作,輸入 salt-key –l 來(lái)查詢客戶端證書(shū)狀態(tài),并如圖 11 所示操作,輸入 salt-key –A 接受客戶端認(rèn)證。

    圖 10.SaltStack 證書(shū)查詢
    自動(dòng)化運(yùn)維工具SaltStack在云計(jì)算環(huán)境中的實(shí)踐是怎樣的


    從圖中可以看到客戶端被發(fā)現(xiàn),但是處于未被接受狀態(tài),需要管理員執(zhí)行圖 11 所示指令,進(jìn)行接受。

    圖 11.SaltStack 接受證書(shū)
    自動(dòng)化運(yùn)維工具SaltStack在云計(jì)算環(huán)境中的實(shí)踐是怎樣的


    至此我們已經(jīng)完成 SaltStack 的全部配置。

    SaltStack 測(cè)試

    通過(guò)本章節(jié)中的兩個(gè)測(cè)試案例,可以驗(yàn)證 SaltStack 是否運(yùn)行正常,是否可以完成預(yù)定的功能。我們可以通過(guò) salt '*' test.ping 來(lái)測(cè)試客戶端是否在線,并被 master 管理,如圖 12 所示,如果返回 True,則說(shuō)明客戶端已經(jīng)被 master 管理,并處于在線狀態(tài)。

    圖 12.SaltStack 接受證書(shū)
    自動(dòng)化運(yùn)維工具SaltStack在云計(jì)算環(huán)境中的實(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í)行查詢命令,看服務(wù)器的負(fù)載及利用率。如圖 13 所示的指令為批量查詢服務(wù)器操作系統(tǒng)的版本

    圖 13.SaltStack 查詢服務(wù)器的 IP 信息
    自動(dòng)化運(yùn)維工具SaltStack在云計(jì)算環(huán)境中的實(shí)踐是怎樣的


    *代表對(duì)所有的被管理客戶端進(jìn)行操作,cmd.run 是命令調(diào)用模塊,ifconfig 是具體的執(zhí)行命令。

    批量安裝軟件

    批量安裝軟件也是日常運(yùn)維中的家常便飯,我們可以通過(guò) SaltStack 的軟件推送功能,對(duì)所管理的服務(wù)器進(jìn)行進(jìn)行相關(guān)軟件的批量安裝。如圖 14 所示的指令為批量安裝軟件 lrzsz 在客戶端服務(wù)器中。

    圖 14.SaltStack 安裝 lrzsz
    自動(dòng)化運(yùn)維工具SaltStack在云計(jì)算環(huán)境中的實(shí)踐是怎樣的

    如上圖所示,lrzsz 軟件被順利的安裝到了客戶端服務(wù)器。 通過(guò)以上兩個(gè)測(cè)試,可以驗(yàn)證 SaltStack 可以正常的為云平臺(tái)提供集中化的管理與配置功能。

關(guān)于自動(dòng)化運(yùn)維工具SaltStack在云計(jì)算環(huán)境中的實(shí)踐是怎樣的就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI