王寶安,余 會
(棗莊職業(yè)學院,山東 棗莊 277800)
當前,我國大部分企業(yè)信息化系統(tǒng)主要采用傳統(tǒng)的Windows系統(tǒng)和Linus服務系統(tǒng),但是隨著企業(yè)規(guī)模的不斷擴大,企業(yè)信息系統(tǒng)運維難度不斷提升,僅僅通過管理人員依靠人工模式對信息系統(tǒng)進行運維管理,難以滿足企業(yè)不斷增長的業(yè)務需求,且信息系統(tǒng)大部分為批量化處理需求,比如批量命令運行、批量系統(tǒng)配置等,這些都會增加運維管理難度。因此,有必要設計開發(fā)一種基于Ansible的自動化運維系統(tǒng),從而實現(xiàn)對企業(yè)信息系統(tǒng)故障的自動化預測。
Ansible是一種包括多個模塊而構(gòu)成的框架,Ansible自身不具有執(zhí)行能力和部署能力,Ansible的各個模塊執(zhí)行能力和部署能力決定其能夠面向服務器集群,具有批量系統(tǒng)配置、批量程序設置以及批量運行命令等功能。Ansible是設計較為簡單的自動化運維工具,具有開源性不斷迭代的特點,支持多節(jié)點發(fā)布任務,且能夠?qū)崿F(xiàn)遠程自動化執(zhí)行[1]。Ansible工具能夠跨平臺自動化運維,主要包含軟件自動化部署、自動化配置、自動化管控以及系統(tǒng)熱升級等功能,其主要模塊包括Command模塊、Shell模塊、Cron模塊、Yum模塊以及Serbice模塊等,且Ansible功能模塊在不斷增加。在Ansible迭代升級的背景下,設計開發(fā)者逐漸加入了許多新的模塊,使其功能更加豐富。Ansible的主要架構(gòu)包括:(1)連接插件Connection Plugines。這一插件主要功能為實現(xiàn)被監(jiān)控端的通信。(2)主機目錄Bost Inventory。這一插件主要功能為制定操作主機,配置文件中定義需要監(jiān)控的主機。(3)Service模塊、Corn功能模塊等。(4)能夠通過插件實現(xiàn)對日志的記錄。(5)劇本Playbook。Playbook在執(zhí)行多個任務時,能夠?qū)崿F(xiàn)在一個節(jié)點運行多個任務。
Ansible和Ansible—Platbook的運行流程為:Use →Playbook→Ansible→Play1/CustcmModles、Play2/CoreModels、Play3/Plugins→HostInventory→SSH Kerberos LDAP → Hosts/Networking。運行流程如圖1所示。

圖1 運行流程
在用戶啟動Ansible或Ansible—Playbooks時,用戶能夠在服務器顯示終端輸入Ansible的Ad—Hoc命令集,比如-V,--VERBOSE為需要輸出更為詳細的執(zhí)行命令;-m NAME,--module-name=NAME表示指定執(zhí)行使用的模塊。Ansible中常見的命令集較多,需要用戶熟練掌握相關(guān)命令。在輸入命令集后,Ansible會按照實現(xiàn)編碼完成的規(guī)則將Playbooks進行逐一拆解,之后按照命令集將play轉(zhuǎn)化為Ansible可以識別的任務命令,使得任務命令稱為Task;Task的實現(xiàn)取決于Ansible模塊和插件;不同的模塊與不同的插件在任務執(zhí)行過程時具有不同功能;按照Invertory中的定義主機列表,利用SSH將任務集和臨時命令文件傳輸?shù)竭h程客戶端中執(zhí)行,執(zhí)行結(jié)果能夠自動化返回;在結(jié)果能夠永久存儲的情況下,系統(tǒng)會自動保存命令。如果為臨時性結(jié)果,系統(tǒng)會自動將制定后的臨時文件刪除[2]。
因為Ansible具有較多的命令,用戶使用難度較大,需要用戶熟練地掌握Ansible各種命令形式。為了提高系統(tǒng)運行管理效率,需要對Ansible進行二次開發(fā),按照需求開發(fā)基于Ansible的新自動化運維系統(tǒng),從而降低Ansible運維系統(tǒng)運行難度。Hosts為不具有擴展名的系統(tǒng)文件,通過對Hosts的管理和分組,對其進行合理配置;Hosts狀態(tài)能夠反映出Ansible的服務器種類、服務器數(shù)量以及服務器協(xié)議等多種信息;在應用Ansible時能夠同時操作一個分組中的多個Hosts主機,小組之間利用文件配置構(gòu)成連接;為了完成對Hosts主機的批量運行命令操作,需要在Hosts主機中安裝通信軟件,通常情況下Windows系統(tǒng)安裝Winrm軟件;Linus系統(tǒng)安裝SSH軟件;在確定運行后,系統(tǒng)會將腳本傳輸?shù)紿osts的目錄中,之后自動運行腳本;在對系統(tǒng)進行測試的過程中,能夠明確Hosts的腳本是否運行成功。在腳本運行成功的情況下,系統(tǒng)會自動返回Success,說明該系統(tǒng)通過測試。在對Hosts進行分組管理時,能夠?qū)osts的類別進行添加或刪除操作,腳本能夠體現(xiàn)出Hosts的運行情況[3]。
本文以電力企業(yè)的信息化系統(tǒng)建設為例,設計開發(fā)一種能夠應用于電力企業(yè)系統(tǒng)故障預測的系統(tǒng)。
因為電力企業(yè)內(nèi)部電力設備較多,比如變壓器、發(fā)動機以及壓縮機等,不同品牌的電力設備的參數(shù)、使用時間、型號等都可以作為系統(tǒng)的基礎(chǔ)數(shù)據(jù),數(shù)據(jù)需要電力企業(yè)結(jié)合實際情況進行管理,同時需要電力企業(yè)通過數(shù)據(jù)服務器將數(shù)據(jù)進行同步處理,使得數(shù)據(jù)能夠統(tǒng)一存儲到調(diào)度中心,之后實現(xiàn)統(tǒng)一化的數(shù)據(jù)管理與分析。電力企業(yè)的設備在運行過程中會產(chǎn)生大量數(shù)據(jù),且數(shù)據(jù)較為復雜,更新速度較快,對于系統(tǒng)數(shù)據(jù)存儲空間要求較高。以Ansible為基礎(chǔ)的自動化運維信息細化系統(tǒng)產(chǎn)生的數(shù)據(jù)也是過程數(shù)據(jù)的重要組成部分,能夠體現(xiàn)批量操作的時間、操作頻率、操作類別以及作用等,數(shù)據(jù)具有極高的使用價值,能夠為電力系統(tǒng)的故障預測提供科學的數(shù)據(jù)支持[4]。
為了全面提高對電力系統(tǒng)故障預測的準確性,需要提高Ansible自動化運維信息系統(tǒng)的運行效率和穩(wěn)定性,所以需要結(jié)合電力系統(tǒng)的實際情況開發(fā)設計相應的子系統(tǒng),使其能夠滿足電力系統(tǒng)故障預測需求。
本次所開發(fā)的Ansible故障預測系統(tǒng)結(jié)構(gòu)主要包括主站系統(tǒng)和子站系統(tǒng),具有明顯的功能差異。子站系統(tǒng)主要功能是對電力系統(tǒng)運行數(shù)據(jù)的初次采集,并將所采集的數(shù)據(jù)傳輸?shù)街髡鞠到y(tǒng)中;主站系統(tǒng)在獲取對應的數(shù)據(jù)后,會自動運行數(shù)據(jù)清洗、數(shù)據(jù)篩選、數(shù)據(jù)分列以及數(shù)據(jù)排序等功能操作,通過對電力系統(tǒng)運行數(shù)據(jù)的分析,則能夠?qū)﹄娏ο到y(tǒng)故障進行預測,將其輸送到Ansible自動化運維信息系統(tǒng)中。以某電力企業(yè)主要應用的Scada/EMSD電網(wǎng)自動化調(diào)度系統(tǒng)為例,該調(diào)度系統(tǒng)能夠?qū)崟r調(diào)度大量的電力網(wǎng)絡信息,以Scada/EMSD電網(wǎng)自動化調(diào)度系統(tǒng)為基礎(chǔ),能夠確保電力系統(tǒng)穩(wěn)定運行,提高電網(wǎng)調(diào)度合理性,是電力企業(yè)系統(tǒng)運行質(zhì)量的重要保障。在Scada/EMSD電網(wǎng)自動化調(diào)度系統(tǒng)中,本文設計開發(fā)了防火墻防護系統(tǒng),將子系統(tǒng)配置在安全監(jiān)控區(qū)域內(nèi),系統(tǒng)數(shù)據(jù)具有實時傳輸功能。該系統(tǒng)能夠有效拒絕所有監(jiān)控和組網(wǎng)操作,從而提高系統(tǒng)運行安全性。本次系統(tǒng)設計以Windows操作系統(tǒng)為子系統(tǒng)的運行環(huán)境。該操作系統(tǒng)較為穩(wěn)定,能夠有效抵御病毒和網(wǎng)絡攻擊[5]。為了提高系統(tǒng)安全性,本設計增加密碼系統(tǒng),密碼包括0~9數(shù)字、小寫字母、大寫字母以及特殊字符,共計94個字符組成素材庫,密碼長度需要設置在8~16位范圍內(nèi)。設置密碼能夠提高系統(tǒng)運行的安全性。
本設計基于Ansible的電力系統(tǒng)故障預測包括一個主站模塊和多個子站模塊,子站模塊能夠?qū)﹄娏ο到y(tǒng)運行數(shù)據(jù)進行采集和初次分析,利用查詢與流通功能將分析后的數(shù)據(jù)實時傳遞到主站模塊;主站模塊與子站模塊之間采用TCP/IP通信協(xié)議,同時配備了備用的電話撥號傳輸方式,能夠避免出現(xiàn)通信故障;主站在接收經(jīng)過子站模塊初次分析的數(shù)據(jù)后,需要完成對電力系統(tǒng)數(shù)據(jù)的二次分析和處理,并將無關(guān)數(shù)據(jù)進行清洗;采用帶有IntelSGX功能的配置管理模塊,分別對系統(tǒng)的預測進行測試,根據(jù)測試結(jié)果可以看出,帶有IntelSGX功能的配置管理模塊不同操作的預測平均時間能夠減少0.186~0.232 s,占據(jù)總體耗時約5%~14%左右,能夠降低系統(tǒng)運行時間,從而提高預測效率;數(shù)據(jù)在預處理區(qū)間,利用數(shù)據(jù)抽取、數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)清洗以及數(shù)據(jù)監(jiān)控功能,則能夠?qū)崿F(xiàn)全面化的數(shù)據(jù)預處理目標;在數(shù)據(jù)抽取與數(shù)據(jù)抽取任務完成后,運行基于Ansible的自動化運維故障預測系統(tǒng),在自動化運行故障系統(tǒng)所接收數(shù)據(jù)出現(xiàn)異常變化時,需要分析數(shù)據(jù)異常的具體原因,并對異常的數(shù)據(jù)進行及時處理,同時需要通過監(jiān)控功能開展后續(xù)的數(shù)據(jù)預處理任務;針對發(fā)生故障頻率較高的模塊,企業(yè)需要將故障的具體原因進行全面記錄,從而能夠形成穩(wěn)定的數(shù)據(jù)庫,將其轉(zhuǎn)化為Ansible故障預測系統(tǒng)的運行腳本;在將腳本加入信息化故障預測系統(tǒng)后,Ansible信息系統(tǒng)的故障數(shù)據(jù)庫會不斷豐富,從而能夠降低故障預測錯誤率,提升故障預測結(jié)果準確性;通過對故障的預測與分析,能夠有效縮短電力系統(tǒng)故障識別、診斷以及處理時間,且故障處理改變?yōu)樘崆邦A測,能夠在電力系統(tǒng)故障發(fā)生前準確掌握,不僅能夠降低系統(tǒng)故障運行維護難度,同時能夠更為科學地處理Ansible系統(tǒng)故障[6]。此外,在測試過程中,運行服務器密碼自動生成程序,可將其設定為8位、10位、12位、14位以及16位密碼各運行50次,對生成密碼所需的算法平均運輸次數(shù)進行統(tǒng)計。根據(jù)測試結(jié)果可以看出,8~16位的密碼算法平均生成次數(shù)未定在1.3左右,說明密碼生成所需算法的次數(shù)基本相同,能夠有效保護系統(tǒng)運行安全。
基于Ansible自動化運維的信息系統(tǒng)故障預測技術(shù)在電力企業(yè)信息系統(tǒng)管理中能夠發(fā)揮出良好的運行效果。在后期運行過程中,經(jīng)過數(shù)據(jù)積累所轉(zhuǎn)化的腳本,能夠豐富Ansible故障預測系統(tǒng)數(shù)據(jù)量,從而提升故障預測結(jié)果準確性,相比于傳統(tǒng)的電力企業(yè)故障預測模式而言,能夠做到提前發(fā)現(xiàn)、提前診斷以及提前處理,從而能夠為電力企業(yè)信息化系統(tǒng)建設提供良好的支持。
通過上文的分析,將基于Ansible自動化運維的信息系統(tǒng)故障預測技術(shù)應用于電力企業(yè)中,能夠準確、高效地識別出電力企業(yè)信息系統(tǒng)運行存在的多項故障問題,具有良好的效果。當前,部分企業(yè)在信息化系統(tǒng)故障管理方面,依然處于較為落后的狀態(tài),只能通過人工管理模式對其進行管控。這種故障管理模式較為被動,基本是在故障問題發(fā)生后才能識別,從而會對信息化系統(tǒng)運行造成很大影響。為此,研究人員需要采用科學的自動化故障預測技術(shù),構(gòu)建基于Ansible的自動化故障預測技術(shù),將故障處理時間提前到故障發(fā)生前,從而能夠在故障發(fā)生前對其進行控制與處理,降低故障發(fā)生率。
綜上所述,本文全面闡述Ansible的基本架構(gòu)以及運行流程,并對Ansible自動化運維系統(tǒng)搭建方式進行分析,同時以電力企業(yè)為例設計開發(fā)基于Ansible自動運維的故障預測技術(shù),在實踐應用中取得良好效果,希望能夠?qū)ξ覈髽I(yè)現(xiàn)代化信息系統(tǒng)建設起到一定的借鑒和幫助作用,不斷提高信息化系統(tǒng)運行穩(wěn)定性和安全性。