基于python的自動(dòng)化運(yùn)維系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
基于python的自動(dòng)化運(yùn)維系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
基于python的自動(dòng)化運(yùn)維系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
基于python的自動(dòng)化運(yùn)維系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
基于python的自動(dòng)化運(yùn)維系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩45頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

摘要自動(dòng)化運(yùn)維系統(tǒng)能夠?yàn)檫\(yùn)維人員提供對(duì)大規(guī)模服務(wù)器群集進(jìn)行可視化運(yùn)維操作的平臺(tái),通過(guò)自動(dòng)化運(yùn)維系統(tǒng)運(yùn)維人員可以更直觀清晰的了解和記錄主機(jī)信息,并進(jìn)行管理。本文設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)自動(dòng)化運(yùn)維系統(tǒng)。系統(tǒng)設(shè)計(jì)開(kāi)發(fā)使用VIM開(kāi)發(fā)工具,Python開(kāi)發(fā)語(yǔ)言,MySQL數(shù)據(jù)庫(kù),使用了集中化運(yùn)維管理工具SaltStack,基于web.py的架構(gòu)完成,該系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)的功能包括:賬戶管理,主機(jī)管理,已加入SaltStack的主機(jī)信息采集,Master監(jiān)控,本系統(tǒng)同時(shí)提供對(duì)于遠(yuǎn)程主機(jī)的命令管理。關(guān)鍵詞:Python;SaltStack;自動(dòng)化運(yùn)維

AbstractTheautomatedoperationandmaintenancesystemcanprovideaplatformfortheoperationandmaintenancepersonneltovisualizetheoperationandmaintenanceoflarge-scaleserverclusters.Throughtheautomaticoperationandmaintenancesystem,theoperationandmaintenancepersonnelcanunderstandandrecordthehostinformationmoreintuitivelyandclearly,andmanageit.Thispaperdesignsandimplementsanautomatedoperationandmaintenancesystem.ThesystemdesignanddevelopmentusesVIMdevelopmenttools,Pythondevelopmentlanguage,MySQLdatabase,andusesthecentralizedoperationandmaintenancemanagementtoolSaltStack,whichiscompletedbasedontheweb.pyarchitecture.Thefunctionsdesignedandimplementedbythesysteminclude:accountmanagement,hostmanagement,andhasjoinedSaltStackThehostinformationcollection,Mastermonitoring,thesystemalsoprovidescommandmanagementfortheremotehost.Keywords:Python;Saltstack;Automatedoperations目錄TOC\o\h\z\u第一章緒論 第一章緒論1.1研究意義與目的隨著互聯(lián)網(wǎng)時(shí)代的飛速發(fā)展,特別是在發(fā)展中飛速融入了人們的生活中。在這其中產(chǎn)生的信息也是越來(lái)越大,越來(lái)越多,云計(jì)算與大數(shù)據(jù)也就這么隨著發(fā)展,而在發(fā)展中跟上來(lái)的挑戰(zhàn)就是所需要管理的主機(jī)集群也愈發(fā)龐大,而作為在這后面提供支持的運(yùn)維人員所需面臨的就是如此多的主機(jī),而這有許多工作都是繁瑣,重復(fù)的,而所需要處理的如此多且重復(fù),那么就很容易出現(xiàn)錯(cuò)誤。該自動(dòng)化運(yùn)維系統(tǒng)基于WEB開(kāi)發(fā),用戶可以通過(guò)在該系統(tǒng)中看到主節(jié)點(diǎn)的資源信息,以及將所有的機(jī)器進(jìn)行一個(gè)登記,以及對(duì)各個(gè)主機(jī)的信息可以進(jìn)行查看,并且在WEB中通過(guò)SaltStack管理工具可以通過(guò)批量的命令發(fā)送來(lái)進(jìn)行對(duì)旗下主機(jī)的一些重復(fù)性操作進(jìn)行批量處理。因此該選題還是有必要的,因?yàn)檫@樣就可以通過(guò)一個(gè)可視化的WEB界面來(lái)直觀的讓使用人員了解所有的主機(jī)情況,并且讓一些重復(fù)繁瑣的操作一次就能實(shí)現(xiàn),減少出錯(cuò)的概率,因此這對(duì)于運(yùn)維人員來(lái)說(shuō)是具有實(shí)用性的【1】。 通過(guò)使用WEB來(lái)開(kāi)發(fā)該自動(dòng)化運(yùn)維平臺(tái),該課題主要是有以下的幾點(diǎn)目的:1、在大學(xué)的時(shí)候所學(xué)的一些相關(guān)專業(yè)課程的基礎(chǔ)上,將所學(xué)的知識(shí)與實(shí)踐結(jié)合使用,來(lái)進(jìn)一步鞏固相關(guān)專業(yè)的知識(shí)以及實(shí)操的能力,從而達(dá)到對(duì)學(xué)習(xí)過(guò)的知識(shí)了解的更清晰,運(yùn)用更熟練,這是對(duì)于已學(xué)習(xí)過(guò)的知識(shí)進(jìn)行更深的挖掘;2、隨著互聯(lián)網(wǎng)時(shí)代的飛速發(fā)展,為此提供支持的主機(jī)數(shù)量也越來(lái)越龐大,完成該選題是為了給使用人員提供一個(gè)自動(dòng)化運(yùn)維平臺(tái),能夠減低運(yùn)維人員的一些重復(fù)繁瑣的工作量,以及更好的對(duì)主機(jī)集群進(jìn)行更好的管理;3、自動(dòng)化運(yùn)維領(lǐng)域目前較為熱門,這能夠幫助我們掌握Python的一部分知識(shí),以及對(duì)于MySQL,SaltStack運(yùn)維管理工具等進(jìn)行學(xué)習(xí),在之后的職業(yè)選擇中有更多的選擇,在進(jìn)行相關(guān)的運(yùn)維工作能有更好的幫助。通過(guò)該選題的設(shè)計(jì)與實(shí)現(xiàn),可以有效的增強(qiáng)我們對(duì)于新知識(shí)的學(xué)習(xí)與使用、對(duì)相關(guān)資料的查詢以及使用,以及找出問(wèn)題分析并解決、綜合實(shí)踐使用相關(guān)知識(shí)等能力,這有利于我們的學(xué)習(xí)能力、專業(yè)技能能力以及邏輯能力的進(jìn)一步加強(qiáng)。1.2研究背景和現(xiàn)狀在互聯(lián)網(wǎng)用戶及內(nèi)容的規(guī)模還不如現(xiàn)在的過(guò)去,為這些行為提供服務(wù)的主機(jī)數(shù)量并不多,因此運(yùn)維人員通過(guò)逐臺(tái)的登陸主機(jī)進(jìn)行維護(hù)或者進(jìn)行部署服務(wù)等都是游刃有余。而隨著互聯(lián)網(wǎng)的逐漸發(fā)展,伴隨著的就是信息數(shù)據(jù)量的逐漸增多以及需要上線的項(xiàng)目也變得越來(lái)越多,這時(shí)候就需要逐漸的擴(kuò)大主機(jī)群的規(guī)模,在面對(duì)逐漸擴(kuò)大的主機(jī)集群時(shí),運(yùn)維人員則通過(guò)shell腳本以及Python來(lái)對(duì)這些主機(jī)進(jìn)行維護(hù)等處理。而到了現(xiàn)在,又伴隨這云計(jì)算大數(shù)據(jù)等的到來(lái),以及人工智能等行業(yè)的火熱,運(yùn)維人員所需要面臨的挑戰(zhàn)就大了,因此就有了Ansible、Chef、Puppet、Fabric、SaltStack等的自動(dòng)化運(yùn)維工具來(lái)為人們提高效率。 為了完成該自動(dòng)化運(yùn)維平臺(tái),通過(guò)學(xué)習(xí)、研究、分析,本自動(dòng)化運(yùn)維系統(tǒng)主要功能有用戶可以通過(guò)在該系統(tǒng)中看到主節(jié)點(diǎn)的資源信息,將所有的機(jī)器進(jìn)行一個(gè)登記,以及對(duì)各個(gè)主機(jī)的信息可以進(jìn)行查看,并且我們可以使用SaltStack管理工具通過(guò)批量的命令發(fā)送來(lái)對(duì)旗下主機(jī)的一些重復(fù)性操作進(jìn)行批量處理,這有助于提高人們的工作效率,讓一些重復(fù)、繁瑣的工作減少出現(xiàn)錯(cuò)誤。該自動(dòng)化運(yùn)維平臺(tái)使用Python語(yǔ)言進(jìn)行編碼與實(shí)現(xiàn),后臺(tái)則采用web.py的框架,存儲(chǔ)方面則使用MySQL數(shù)據(jù)庫(kù)來(lái)為數(shù)據(jù)提供存儲(chǔ)以及通過(guò)SaltStack運(yùn)維工具來(lái)實(shí)現(xiàn)功能,通過(guò)這些相關(guān)工具和技術(shù)的結(jié)果使用來(lái)完成該系統(tǒng)。1.3系統(tǒng)內(nèi)容綜述與論文結(jié)構(gòu)1.3.1本文主要內(nèi)容本系統(tǒng)是一個(gè)基于Python開(kāi)發(fā)的WEB項(xiàng)目,是一個(gè)自動(dòng)化運(yùn)維的WEB應(yīng)用。前端使用Mako進(jìn)行開(kāi)發(fā),后臺(tái)使用web.py進(jìn)行開(kāi)發(fā),數(shù)據(jù)庫(kù)使用MySQL,并結(jié)合了SaltStack自動(dòng)化運(yùn)維工具??梢酝ㄟ^(guò)本系統(tǒng)來(lái)進(jìn)行對(duì)主節(jié)點(diǎn)的資源信息展示的,以及遠(yuǎn)程命令、查詢子節(jié)點(diǎn)的信息、批量部署等等功能。1.3.2本文主要結(jié)構(gòu)本論文的主要結(jié)構(gòu)介紹如下:第1章:緒論,主要是論述自動(dòng)化運(yùn)維平臺(tái)研究的意義與目的、課題的背景與現(xiàn)狀以及對(duì)本論文的主要內(nèi)容進(jìn)行簡(jiǎn)單的概述第2章:系統(tǒng)分析與設(shè)計(jì),主要是對(duì)該系統(tǒng)的功能模塊來(lái)進(jìn)行需求的分析,然后設(shè)計(jì)出一套符合本系統(tǒng)的架構(gòu)模式和結(jié)構(gòu)模式,介紹集中化運(yùn)維工具SaltStack介紹以及開(kāi)發(fā)本系統(tǒng)時(shí)使用到的一些技術(shù)還有系統(tǒng)所需要的環(huán)境以及數(shù)據(jù)庫(kù)設(shè)計(jì)。第3章:自動(dòng)化運(yùn)維系統(tǒng)的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn),首要是詳細(xì)介紹本系統(tǒng)的各個(gè)功能模塊的設(shè)計(jì)思路以及核心代碼的實(shí)現(xiàn),主要有功能實(shí)現(xiàn)、關(guān)鍵技術(shù)和關(guān)鍵的業(yè)務(wù)邏輯等第4章:系統(tǒng)測(cè)試,主要寫了對(duì)于整個(gè)系統(tǒng)進(jìn)行測(cè)試第5章:總結(jié)與展望,對(duì)于本論文進(jìn)行歸納總結(jié)以及提出展望。第二章系統(tǒng)分析與設(shè)計(jì)2.1需求分析用戶模塊:用戶登陸、注冊(cè)、修改信息、退出。主頁(yè)模塊:展示主節(jié)點(diǎn)當(dāng)前各類信息。顯示當(dāng)前時(shí)間。主機(jī)登記模塊:登記所需記錄的主機(jī)詳細(xì)信息。修改所需記錄的主機(jī)詳細(xì)信息。刪除所需記錄的主機(jī)詳細(xì)信息。SaltStack模塊:顯示當(dāng)前加入SaltStack的子節(jié)點(diǎn)信息。通過(guò)SaltStack命令執(zhí)行功能實(shí)現(xiàn)遠(yuǎn)程命令、批量部署等功能。2.2系統(tǒng)總體設(shè)計(jì)2.2.1開(kāi)發(fā)結(jié)構(gòu)設(shè)計(jì)設(shè)計(jì)、創(chuàng)建該WEB的模式使用了MVC模式,該模式的是指ModelViewController即模型-視圖-控制器。關(guān)于該模式作用如下:Model即模型,它表示的即是核心的對(duì)于數(shù)據(jù)的操作或者對(duì)于數(shù)據(jù)庫(kù)的操作;Controller即控制器,它負(fù)責(zé)的根據(jù)收到的請(qǐng)求而調(diào)用所需要的Model來(lái)完成請(qǐng)求;View即視圖,它則與用戶進(jìn)行交互并根據(jù)所接受到的數(shù)據(jù)來(lái)呈現(xiàn)到用戶面前。2.2.2系統(tǒng)架構(gòu)設(shè)計(jì)本自動(dòng)化運(yùn)維系統(tǒng)的架構(gòu)由客戶端和服務(wù)端組成,客戶端面對(duì)的是使用該自動(dòng)化運(yùn)維平臺(tái)并進(jìn)行交互的用戶,所有功能的實(shí)現(xiàn)則由客戶端、服務(wù)端、數(shù)據(jù)庫(kù)以及SaltStack之間的交互完成。如下圖2-1所示,為該自動(dòng)化運(yùn)維系統(tǒng)的總體架構(gòu):圖2-1系統(tǒng)架構(gòu)圖2.2.3總體功能架構(gòu)根據(jù)2.1的功能需求分析,如圖2-2所示,此為該自動(dòng)化運(yùn)維系統(tǒng)的功能模塊:圖2-2系統(tǒng)功能模圖2.3SaltStack綜述2.3.1簡(jiǎn)介SaltStack是一個(gè)在2011年建立的開(kāi)源項(xiàng)目,這是一個(gè)功能強(qiáng)大,能適應(yīng)與大規(guī)模的進(jìn)行批量管理服務(wù)器的C/S自動(dòng)化集中管理工具,該工具是基于Python語(yǔ)言實(shí)現(xiàn),實(shí)現(xiàn)它的底層網(wǎng)絡(luò)架構(gòu),進(jìn)行通信的則是輕量級(jí)消息隊(duì)列ZeroMQ。通過(guò)對(duì)于SaltStack的部署以及使用,我們能夠?qū)Υ罅糠?wù)器做到任務(wù)執(zhí)行以及配置管理以及基于這兩大功能延伸的另外的一些功能如采集服務(wù)器數(shù)據(jù)等等。2.3.2SaltStack基本原理SaltStack所使用的模式是C/S模式,即客戶端/服務(wù)端的模式,其中客戶端是指SaltStack中的minion子節(jié)點(diǎn),服務(wù)端指Saltstack中的Master主節(jié)點(diǎn),主節(jié)點(diǎn)Master與子節(jié)點(diǎn)minion之間的通信是利用的輕量級(jí)消息隊(duì)列ZeroMQ。當(dāng)主節(jié)點(diǎn)和子節(jié)點(diǎn)的SaltStack對(duì)應(yīng)組件下載安裝完后,配置完對(duì)應(yīng)配置和hosts啟動(dòng)服務(wù)后,子節(jié)點(diǎn)minion會(huì)連接主節(jié)點(diǎn)Master將自己的pubkey發(fā)送過(guò)去,請(qǐng)求它為其簽發(fā)證書,而這時(shí)的主節(jié)點(diǎn)Master則通過(guò)salt-key命令可以查看并且接受子節(jié)點(diǎn)minion的key,為它簽發(fā)證書,而等到證書簽發(fā)完畢后,就代表這主節(jié)點(diǎn)Master和子節(jié)點(diǎn)minion之間已經(jīng)互相信任了。這時(shí)候我們就可以通過(guò)主節(jié)點(diǎn)Master端發(fā)送任何指令讓匹配的子節(jié)點(diǎn)minion執(zhí)行,子節(jié)點(diǎn)minion執(zhí)行完命令后則返回結(jié)果。在這之間完成任務(wù)是通過(guò)4505以及4506兩個(gè)端口實(shí)現(xiàn)的,其中4505端口對(duì)于的是輕量級(jí)消息隊(duì)列ZeroMQ的PUBsystem,它的功能是用來(lái)發(fā)送消息的,而4506端口則是REPsystem,它的功能則是用來(lái)接受消息的。SaltStack的主節(jié)點(diǎn)與子節(jié)點(diǎn)之間的的消息是通過(guò)輕量級(jí)消息隊(duì)列ZeroMQ的發(fā)布-訂閱模式來(lái)進(jìn)行傳遞的,它們之間的連接方式有tcp以及icp兩種。SaltStack的命令通過(guò)salt.client.LocalClient.cmd_cli發(fā)布到主節(jié)點(diǎn)Master,并以此來(lái)獲取一個(gè)jobid,而命令執(zhí)行得到的結(jié)果則是根據(jù)此jobid來(lái)獲取的。主節(jié)點(diǎn)Master接收到該命令后,則通過(guò)ZeroMQ在發(fā)送到子節(jié)點(diǎn)minion上,并通過(guò)接受到的消息得到需要執(zhí)行的命令在通過(guò)minion._handle_aes處理,其會(huì)發(fā)起一個(gè)本地線程來(lái)執(zhí)行命令。在處理完命令后,調(diào)用minion._return_pub方法,將執(zhí)行結(jié)果返回給主節(jié)點(diǎn)Master。主節(jié)點(diǎn)Master接受到了子節(jié)點(diǎn)minion返回的結(jié)果后,在通過(guò)使用Master._handle_aes方法,將結(jié)果寫的文件中。在最后獲取到結(jié)果并最終輸出到終端的則是salt.client.LocalClient.cmd_cli通過(guò)輪詢獲取Job執(zhí)行結(jié)果【2】。在SaltStack中的還包含了State、Grain、Pillar、Highstate、Modules等模塊。其中,State模塊是通過(guò)在服務(wù)器Master中的/srv/salt路徑下編寫.sls函數(shù)關(guān)于配置管理等的一些指令,在通過(guò)命令調(diào)用該函數(shù)實(shí)現(xiàn)對(duì)與目標(biāo)服務(wù)器的配置管理等。Grain是在SaltStack中的以keyvalue形式存儲(chǔ)的一種靜態(tài)的數(shù)據(jù)庫(kù),它存儲(chǔ)的是由客戶端minion要返回給服務(wù)端的數(shù)據(jù),這部分?jǐn)?shù)據(jù)是靜態(tài)的,包含一些如操作系統(tǒng)類型、版本或者一些硬件屬性的不經(jīng)常改變的數(shù)據(jù)。Pillar是在SaltStack中的以keyvalue形式存儲(chǔ)的一種動(dòng)態(tài)的數(shù)據(jù)庫(kù)這里面存儲(chǔ)的數(shù)據(jù)是比較私密的,它存儲(chǔ)的是客戶端minion需要向服務(wù)器索要的數(shù)據(jù),這些數(shù)據(jù)是只有指定的某個(gè)minion客戶端才能看到的關(guān)于自身的Pillar數(shù)據(jù),而別的是無(wú)法看見(jiàn)的。Highstate的功能與State模塊功能類似,但是卻是能通過(guò)top.sls來(lái)對(duì)多個(gè)服務(wù)器來(lái)進(jìn)行更為仔細(xì)的管理。Modules模塊則是包含的SaltStack的指令,包括命令行cmd模塊指令、cp模塊指令、service模塊指令等等,通過(guò)這些指令來(lái)完成SaltStack的功能【3】。2.3.3SaltStack的部署架構(gòu)在SsltStack中,它包含的角色有三種,其中最重要的兩個(gè)角色分別是處于中心控制系統(tǒng)的Master角色,以及被管理的客戶端minion,還有一個(gè)角色是syndic,它的作用類似與代理,即只負(fù)責(zé)分發(fā)任務(wù)下去給客戶端minion執(zhí)行。 而基于這三種角色,SaltStack則有四種部署的架構(gòu)【4】: 第一種:Master服務(wù)器與所有客戶端minion直連,minion通過(guò)消息隊(duì)列直接接受來(lái)自于Master服務(wù)器分發(fā)下來(lái)的命令,并執(zhí)行命令或者完成配置管理,具體結(jié)構(gòu)圖如圖2-3所示:圖2-3單Master直連第二種:Master服務(wù)器通過(guò)syndic節(jié)點(diǎn)來(lái)將命令發(fā)布給旗下的客戶端minion,在該架構(gòu)中,Master服務(wù)器通過(guò)syndic來(lái)對(duì)客戶端進(jìn)行管理,通過(guò)這種結(jié)構(gòu),則可以進(jìn)行更加多級(jí)的擴(kuò)展以此來(lái)滿足更大規(guī)模的使用,具體結(jié)構(gòu)圖如圖2-4所示:圖2-4使用代理連接第三種:多臺(tái)Master服務(wù)器與所有客戶端minion直連,minion通過(guò)消息隊(duì)列直接接受來(lái)自于Master服務(wù)器分發(fā)下來(lái)的命令,并執(zhí)行命令或者完成配置管理,而使用這種結(jié)構(gòu)的時(shí)候,客戶端minion需要在hosts以及salt的配置文件中配置多個(gè)服務(wù)端的節(jié)點(diǎn)以及多個(gè)服務(wù)器Master之間的配置、狀態(tài)、密鑰文件等需要相同,以此來(lái)提高系統(tǒng)的高可用,解決單點(diǎn)問(wèn)題,具體結(jié)構(gòu)圖如圖2-5所示:圖2-5多Master連接第四種:?jiǎn)蝝inion客戶端的無(wú)Master服務(wù)器模式,即單機(jī)版,在該種架構(gòu)當(dāng)中,客戶端不受任何的服務(wù)器Master控制使用,只要在本地運(yùn)行,一些相關(guān)的功能就能自己完成,具體結(jié)構(gòu)圖如圖2-6所示:圖2-6單機(jī)版在本次系統(tǒng)中,我們采用的是第一種Master服務(wù)器對(duì)所有客戶端minion進(jìn)行管理的架構(gòu),在進(jìn)行這小型的架構(gòu)時(shí)即可滿足需求。2.3.4為何選擇SaltStack目前來(lái)說(shuō)可以選擇的自動(dòng)化運(yùn)維工具有很多,但是目前而言較為熱門的還是Puppet、Chef、Ansible和SaltStack、Fabric這幾個(gè)工具。其中Ansible、SaltStack和Fabric這三者都是基于Python來(lái)進(jìn)行開(kāi)發(fā)的,而Puppet、Chef則是基于Ruby來(lái)進(jìn)行開(kāi)發(fā)的。和Saltstack相比,Ansible和其之間功能是非常相似的,不過(guò)SaltStack是基于輕量級(jí)消息隊(duì)列ZeroMQ來(lái)進(jìn)行通信的,而Ansible則不一樣,它的底層主要還是通過(guò)SSH來(lái)進(jìn)行通信,而ZMQ相比,那Ansible它的通信速度則就慢了許多了,而當(dāng)如果遇到更大規(guī)模的集群時(shí),是不如SaltStack的,除此之外,它在對(duì)于支持的環(huán)境這方面而言,也是比SaltStack支持的操作系統(tǒng)的數(shù)量要更少一些,不過(guò)它相對(duì)與SaltStack,它在進(jìn)行安裝部署的時(shí)候,子節(jié)點(diǎn)是不需要在下載安裝agent的,相對(duì)與SaltStack而言則是則是更簡(jiǎn)單。而Fabric相對(duì)與SaltStack而言,它要更適合與小型的環(huán)境中,而且相比較與SaltStack而言,由于它的定位以及本身,會(huì)更加的容易出現(xiàn)單點(diǎn)故障,因此如果是在稍微大型些的環(huán)境中使用的話則顯的不妥。Puppet則是相對(duì)于這些而言要更成熟,但是它的庫(kù)也因此顯的更為笨重,除此之外,由于它是基于Ruby開(kāi)發(fā)的,而如果要使用它則需要對(duì)此語(yǔ)言有更深入的了解才能很好的掌握該工具,相比較而言,它的使用門檻還是有點(diǎn)高的。而Chef與Puppet有點(diǎn)類似,但也是一樣由于是基于Ruby開(kāi)發(fā)的,想要使用該工具的話還需要通過(guò)次語(yǔ)言進(jìn)行更多的開(kāi)發(fā)以及了解才能對(duì)其進(jìn)行使用,這相對(duì)與Pupper而言,更不是一個(gè)能簡(jiǎn)單使用的工具【5】。因此基于多方面的考慮,我們?cè)谶@里選擇了使用SaltStack這一款工具,相比較而言,它具有較為全面的功能,以及擁有快速的速度,對(duì)于各類操作系統(tǒng)環(huán)境的支持也要更加全面,在大型的集群環(huán)境也不會(huì)顯得不堪重用,而且使用門檻不高,對(duì)于使用人員而言更為友好,而且由于是使用Python開(kāi)發(fā)的,因此對(duì)于該語(yǔ)言是相當(dāng)兼容的,而Python中的數(shù)量龐大的庫(kù)對(duì)其的使用更是提供了更為有力的支持【6】。2.4開(kāi)發(fā)技術(shù)綜述2.4.1Python編程語(yǔ)言Python是當(dāng)前較為熱門的,能在時(shí)下火熱的領(lǐng)域中頻頻出現(xiàn)的如人工智能等的一種面向?qū)ο蟮慕忉屝透呒?jí)計(jì)算機(jī)腳本語(yǔ)言。它在創(chuàng)立之初就是為了要編寫shell腳本而出現(xiàn)的。目前來(lái)說(shuō),在現(xiàn)在的許多公司對(duì)于使用Python的工程師還是很有需求的,而別是在與人工智能以及運(yùn)維方面等。Python這一門語(yǔ)言具有許多的有點(diǎn),比如簡(jiǎn)潔、擁有大量的擴(kuò)展庫(kù),而正是憑借這些擴(kuò)展庫(kù)讓Python擁有了許多的功能以及對(duì)于新手而言更為友好,它的使用門檻并不會(huì)特別的高,正是這等等的眾多優(yōu)點(diǎn)也讓它的在現(xiàn)在的眾多的編程語(yǔ)言當(dāng)中能有屬于它自己的地位,當(dāng)然了,Python也并不是毫無(wú)缺點(diǎn)的,比如相對(duì)與C、Java等語(yǔ)言來(lái)說(shuō)它的速度就相對(duì)而言慢了不少了,而這也是它解釋型語(yǔ)言的特性導(dǎo)致的,它在工作的時(shí)候是需要將代碼解釋給硬件能理解的語(yǔ)言,所以就會(huì)導(dǎo)致在速度方面會(huì)比較慢,以及還有另外的一些小的缺點(diǎn),當(dāng)然了,這些缺點(diǎn)對(duì)于Python而言并不會(huì)蓋過(guò)它的優(yōu)點(diǎn)【7】。2.4.2web.py框架web.py框架是一個(gè)小巧輕量但是這不影響它功能強(qiáng)大的一個(gè)基于Python的WEB開(kāi)發(fā)框架。它是一個(gè)很精簡(jiǎn)的框架,只是提供了基礎(chǔ)的骨架以及url路由,對(duì)于用戶而言通過(guò)使用這個(gè)框架對(duì)于業(yè)務(wù)的邏輯方面來(lái)說(shuō)是更容易上手使用進(jìn)行開(kāi)發(fā)的,不過(guò)也是因?yàn)樗?jiǎn)的特性所導(dǎo)致它所擁有的功能并沒(méi)有其他框架那樣強(qiáng)悍,如果有所需要的另外一些功能則需要使用者自己在去進(jìn)行開(kāi)發(fā)。2.4.3Mako模板Mako模板是一個(gè)基于Python的一個(gè)WEB模板,它是一個(gè)借鑒了Jinjia2等多個(gè)優(yōu)秀模板而編寫出來(lái)的一個(gè)簡(jiǎn)單易上手、渲染速度快,并且對(duì)于Python語(yǔ)言的引用有著優(yōu)秀的支持的一個(gè)模板,雖然它的使用難度并不算很高,但是這并不影響它的對(duì)于Python中的WEB開(kāi)發(fā)的優(yōu)秀的支持。2.4.4psutil庫(kù)psutil庫(kù)你一個(gè)可以在Python使用的且且跨平臺(tái)的一個(gè)第三方庫(kù)。它在對(duì)于對(duì)系統(tǒng)資源監(jiān)控之一方面起到重要的作用,通過(guò)使用該庫(kù),我們使用Python來(lái)進(jìn)行對(duì)系統(tǒng)管理的時(shí)候效率會(huì)的到非常大的提高,而且使用調(diào)用該庫(kù)并實(shí)現(xiàn)功能的時(shí)候非常簡(jiǎn)單,只需要些許代碼即可實(shí)現(xiàn)所要實(shí)現(xiàn)的對(duì)系統(tǒng)資源監(jiān)控的功能,除此之外,該庫(kù)所支持的操作系統(tǒng)數(shù)量也是不少,主流的大部分操作系統(tǒng)都能支持進(jìn)行資源監(jiān)控,psutil絕對(duì)是一個(gè)在運(yùn)維人員手中的一個(gè)重要第三方庫(kù)。2.4.5Dmidecode工具Dmidecode是一個(gè)可以獲取系統(tǒng)硬件信息的一個(gè)工具,我們可以通過(guò)下載Python使用的版本來(lái)對(duì)該工具進(jìn)行使用,通過(guò)該工具,我們能夠?qū)τ谙到y(tǒng)的的硬件信息進(jìn)行獲取,這是一個(gè)對(duì)于psutil的補(bǔ)充使用。2.4.6MySQL數(shù)據(jù)庫(kù)MySQL是一個(gè)在現(xiàn)在也有非常多個(gè)人或企業(yè)使用的一個(gè)開(kāi)源的、體量小、輕型的關(guān)系型數(shù)據(jù)庫(kù),別看它開(kāi)源且體量不大,但是這寫都不影響它的功能,功能強(qiáng)大,對(duì)于使用人員來(lái)說(shuō)相對(duì)于其他數(shù)據(jù)庫(kù)而言更容易上手,對(duì)于許多操作系統(tǒng)都是提供使用支持的,而且具有非常不錯(cuò)的穩(wěn)定性的同時(shí)維護(hù)方面也并不困難,這些結(jié)合起來(lái)對(duì)于個(gè)人或者是一些中小企業(yè)來(lái)說(shuō),滿足他們的數(shù)據(jù)存儲(chǔ)需求也是完全足夠的了,而即便是是在面對(duì)大型的數(shù)據(jù)存儲(chǔ)的場(chǎng)景時(shí),它也并不是不能使用的,這足以看出它的功能強(qiáng)大【8】。2.5系統(tǒng)所需環(huán)境及數(shù)據(jù)庫(kù)設(shè)計(jì)2.5.1系統(tǒng)運(yùn)行時(shí)所需環(huán)境桌面虛擬軟件:VMwareWorkstationPRO操作系統(tǒng):Centos6.5數(shù)據(jù)庫(kù):MySQL5.1.73SaltStack:SaltStack20.2環(huán)境配置1、Python的相關(guān)配置: 在使用操作系統(tǒng)自帶的Python的時(shí)候,還需要下載pip這一Python的包管理工具,以此來(lái)下載使用一些所需要使用的Python的庫(kù),在下載后,可一通過(guò)pip-V命令來(lái)查看pip的版本,并以此來(lái)查看是否安裝正確。而在正確下載該管理工具后,在下載其他包后,可以是哦那個(gè)pip-show命令來(lái)查看所下載的包是否正確。 2、MySQL的相關(guān)配置: MySQL是我在該系統(tǒng)中采用的用來(lái)存放一些數(shù)據(jù)的關(guān)系型數(shù)據(jù)庫(kù),在本次中所使用的是5.1.73版本的數(shù)據(jù)庫(kù)。在下載安裝后,我們?cè)跒槠鋭?chuàng)建了root用戶以及密碼為123456789,除此之外,為了能夠不僅僅是在本機(jī)連接上數(shù)據(jù)庫(kù),通過(guò)MySQL的命令,為用戶root賦予了遠(yuǎn)程登陸的權(quán)限,除此之外,為了防止數(shù)據(jù)庫(kù)出現(xiàn)問(wèn)題,將這里面的空賬號(hào)刪除。 3、SaltStack的相關(guān)配置: SaltStack是我在該系統(tǒng)中所使用的一款自動(dòng)化集中管理工具。在下載該工具前,我們需要修改yum源,因?yàn)槿绻褂媚J(rèn)的倉(cāng)庫(kù)的話,這里面是不含有該工具的,因此需要安裝新的yum源,并更改相應(yīng)的配置。在完成前面的步驟后,由于在本系統(tǒng)中所采用的架構(gòu)是服務(wù)端Master直接管理客戶端minion,所以需要分別對(duì)應(yīng)下載相應(yīng)的salt-master和salt-minion版本。下載完相對(duì)于的版本,則分別在所有服務(wù)器中的hosts文件中增加相對(duì)應(yīng)的ip到主機(jī)名的映射,然后在minion服務(wù)器中修改SaltStack的相應(yīng)配置后,將所有服務(wù)器啟動(dòng),在啟動(dòng)后,客戶端minion會(huì)根據(jù)之前的hosts文件中的映射以及相應(yīng)salt文件中的配置尋找?guī)aster并發(fā)送證書請(qǐng)求其為自己進(jìn)行簽名,已達(dá)到互信,Master可以通過(guò)salt-key-a的命令來(lái)接受某客戶端的請(qǐng)求,不過(guò)如果需要接受很多minion的時(shí)候,則可以修改相應(yīng)的auto_accept的配置,讓Master自動(dòng)為minion簽發(fā)證書。如此一來(lái),SaltStack也就完成了相應(yīng)的配置可以進(jìn)行使用了。2.5.3數(shù)據(jù)庫(kù)表分析為了能夠滿足該自動(dòng)化運(yùn)維系統(tǒng)的功能需求,在此于數(shù)據(jù)庫(kù)中建立了與用戶信息模塊、主機(jī)信息模塊、配置信息模塊、登陸信息模塊等相關(guān)的表來(lái)實(shí)現(xiàn)。 用戶信息模塊:該表存放了用戶的id、賬號(hào)、密碼、昵稱、手機(jī)號(hào)碼、郵箱賬號(hào)、用戶等級(jí)、用戶狀態(tài)、最后登陸記錄、注冊(cè)時(shí)間、備注等這類信息。主機(jī)信息模塊:該表存放了關(guān)于該主機(jī)的id、主機(jī)名稱、如果存在域名記錄域名信息、內(nèi)網(wǎng)ip、公網(wǎng)ip、管理ip、服務(wù)器型號(hào)對(duì)應(yīng)id、CPU信息對(duì)應(yīng)id、硬盤大小對(duì)應(yīng)id、內(nèi)存大小對(duì)應(yīng)id、操作系統(tǒng)版本、自定義編碼信息、登記時(shí)間信息、上架時(shí)間信息、更改的時(shí)間、登記者id、更改者id、任務(wù)信息、類型、機(jī)房歸屬信息對(duì)應(yīng)id、所屬機(jī)柜信息對(duì)應(yīng)id、標(biāo)簽、編號(hào)、當(dāng)前狀態(tài)、備注等信息。配置信息模塊:該表存放了關(guān)于該配置的id、類型、該類型的值、組標(biāo)記、當(dāng)前狀態(tài)、備注等信息。登陸信息模塊:該表存放了關(guān)于登陸順序信息id、用戶id登陸時(shí)間、登陸ip、登陸地方、使用瀏覽器類型、登錄令牌、過(guò)期時(shí)間、會(huì)話狀態(tài)等信息。2.5.4概念模型設(shè)計(jì) 根據(jù)上述的需求分許,我們可以憑此得到設(shè)計(jì)思路,并按照此思路設(shè)計(jì)出各實(shí)體關(guān)系,并用E-R圖表現(xiàn)出來(lái)。各E-R圖如圖2-7所示:圖2-7實(shí)體關(guān)系圖2.5.5數(shù)據(jù)庫(kù)表結(jié)構(gòu)設(shè)計(jì)當(dāng)前的表結(jié)構(gòu)設(shè)計(jì)如表2-1至2-4所示:表2-1用戶信息users表字段名類型長(zhǎng)度允許空值主鍵注釋idint3√用戶的idusernamevarchar20賬號(hào)passwordvarchar60密碼nicknamevarchar20是昵稱mobilevarchar15是手機(jī)號(hào)碼emailvarchar50是郵箱賬號(hào)levelint1用戶等級(jí)statusvarchar3用戶狀態(tài)loginfoint5最后登陸記錄regdatetimestamp0注冊(cè)時(shí)間commentvarchar50是備注表2-2主機(jī)信息hosts表字段名類型長(zhǎng)度允許空值主鍵注釋idint3√用戶的idhostnamevarchar30主機(jī)名稱domainvarchar30是如果存在域名記錄域名信息priip1varchar15內(nèi)網(wǎng)ippriip2varchar15是內(nèi)網(wǎng)ippubip1varchar15是公網(wǎng)ippubip2varchar15是公網(wǎng)ipadminipvarchar15是管理ipmodelvarchar30服務(wù)器型號(hào)對(duì)應(yīng)idcpuvarchar30CPU信息對(duì)應(yīng)idhddvarchar20是硬盤大小對(duì)應(yīng)idmemvarchar20內(nèi)存大小對(duì)應(yīng)idosvarchar30操作系統(tǒng)版本rnumvarchar20自定義編碼信息storagedatedate0登記時(shí)間信息startdatedate0上架時(shí)間信息mdatetimestamp0更改的時(shí)間creatorint3登記者ideditorint3更改者idrolevarchar20任務(wù)信息typevarchar20類型idcvarchar20機(jī)房歸屬信息對(duì)應(yīng)ididctagvarchar20所屬機(jī)柜信息對(duì)應(yīng)idstagvarchar20標(biāo)簽snumvarchar20編號(hào)statusvarchar10當(dāng)前狀態(tài)commentvarchar20是備注表2-3配置信息options表字段名類型長(zhǎng)度允許空值主鍵注釋idint3√該配置的idtypevarchar15類型valuevarchar50該類型的值defaultvarchar3組標(biāo)記statusvarchar3當(dāng)前狀態(tài)commentvarchar20是備注表2-4登陸信息login_logs表字段名類型長(zhǎng)度允許空值主鍵注釋idint6√登陸順序信息iduidint3用戶iddatatimestamp0登陸時(shí)間ipvarchar15登陸iplocationvarchar30是登陸地方agentvarchar150使用瀏覽器類型tokenvarchar64是登錄令牌expirydatetime0是過(guò)期時(shí)間statusvarchar3會(huì)話狀態(tài)第三章自動(dòng)化運(yùn)維系統(tǒng)的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)3.1用戶模塊的設(shè)計(jì)與實(shí)現(xiàn)3.1.1登陸注冊(cè)流程如果用戶的登陸進(jìn)網(wǎng)站后則進(jìn)入登陸界面,在輸入相關(guān)用戶信息進(jìn)行登陸后,會(huì)去數(shù)據(jù)庫(kù)進(jìn)行判斷是否正確并將結(jié)果返回到前面,如果成功則登陸,失敗則無(wú)法進(jìn)入。在進(jìn)入網(wǎng)站后可以通過(guò)用戶管理的功能增加用戶,并將該數(shù)據(jù)與數(shù)據(jù)庫(kù)中數(shù)據(jù)進(jìn)行比較,如果用戶信息不存在則注冊(cè)成功,存在則注冊(cè)失敗。其中登陸注冊(cè)的流程圖如圖3-1至3-2所示。圖3-1登陸流程設(shè)計(jì)圖3-2注冊(cè)流程設(shè)計(jì)3.1.2用戶模塊的介紹與實(shí)現(xiàn)用戶模塊中包括了登陸、注冊(cè)、修改信息、刪除用戶、查看信息、退出組成。用戶添加、刪除、修改查看頁(yè)面如圖3-3至3-4所示。 圖3-3登陸頁(yè)面圖3-4用戶管理頁(yè)面 在登陸的時(shí)候,點(diǎn)擊登陸,則通過(guò)一個(gè)監(jiān)控事件將用戶信息拿去數(shù)據(jù)庫(kù)進(jìn)行查詢,然后通過(guò)該信息獲取該用戶的所有信息并保存開(kāi)啟一個(gè)session會(huì)話中在將此次會(huì)話狀態(tài)設(shè)置為運(yùn)行中的時(shí)候并根據(jù)此進(jìn)行一個(gè)cookie的設(shè)置然后在進(jìn)行用戶的登陸,最終通過(guò)驗(yàn)證跳轉(zhuǎn)進(jìn)入主頁(yè)。而在登陸后,則可以對(duì)用戶進(jìn)行注冊(cè),通過(guò)新增用戶,對(duì)用戶的數(shù)據(jù)進(jìn)行輸入后,則將該數(shù)據(jù)拿去數(shù)據(jù)庫(kù)中根據(jù)用戶名來(lái)進(jìn)行判斷是否擁有重復(fù)的用戶,經(jīng)過(guò)判斷沒(méi)有后,則將新用戶的數(shù)據(jù)存入數(shù)據(jù)庫(kù)中完成用戶注冊(cè)。進(jìn)行用戶注冊(cè)后,還可以對(duì)用戶信息進(jìn)行修改、查看以及刪除以及對(duì)使用狀態(tài)的更改。這一系列操作則是通過(guò)修改數(shù)據(jù)庫(kù)中的數(shù)據(jù)屬性來(lái)進(jìn)行實(shí)現(xiàn)。 在完成了一系列操作后需要退出,則在選擇登出后,通過(guò)該用戶的id找到數(shù)據(jù)庫(kù)中的數(shù)據(jù)將數(shù)據(jù)庫(kù)中關(guān)于該用戶的使用狀態(tài)進(jìn)行更改,并將該session會(huì)話關(guān)閉,這時(shí)候即完成了退出。該部分的主要代碼邏輯如附錄1中所示。3.2模塊的設(shè)計(jì)與實(shí)現(xiàn)3.2.1主頁(yè)功能流程在進(jìn)行登陸后,會(huì)將信息傳遞到主頁(yè)后,在主頁(yè)中將這些傳遞過(guò)來(lái)的信息在頁(yè)面中展現(xiàn)出來(lái),其中流程圖如圖3-5所示。圖3-5主頁(yè)功能流程設(shè)計(jì)3.2.2主頁(yè)模塊的介紹與實(shí)現(xiàn)在該模塊中主要是包含了相關(guān)的資源展示展示主頁(yè)以及當(dāng)前時(shí)間顯示和導(dǎo)航欄。如圖3-6所示。圖3-6主頁(yè)在登陸后,通過(guò)urls的功能調(diào)用對(duì)象使用以此獲取需要在主頁(yè)中展示的相關(guān)系統(tǒng)資源信息,并將通過(guò)引用的包的功能來(lái)實(shí)現(xiàn)這一需求,在將獲取到的相關(guān)系統(tǒng)資源信息以及登陸的用戶信息傳遞到主頁(yè)中,主頁(yè)在通過(guò)Mako來(lái)將得到的各類信息進(jìn)行展示。而關(guān)于時(shí)間顯示的實(shí)現(xiàn)則是通過(guò)導(dǎo)入時(shí)間的包來(lái)獲取當(dāng)前時(shí)間,并在主頁(yè)中顯示。該部分的主要代碼邏輯如附錄2中所示。3.3主機(jī)登記模塊的設(shè)計(jì)與實(shí)現(xiàn)3.3.1主機(jī)登記功能流程在通過(guò)登陸進(jìn)入網(wǎng)站后,可以在選項(xiàng)中選擇主機(jī)管理進(jìn)入管理界面,進(jìn)入主機(jī)管理界面后,可以通過(guò)添加主機(jī)信息,進(jìn)入添加界面,在將對(duì)某主機(jī)的配置以及描述等信息錄入后就添加完成。添加完成后可以進(jìn)行編輯查看以及刪除操作。其中流程圖如圖3-7所示。圖3-7登記、查看、刪除主機(jī)流程設(shè)計(jì)3.3.2主機(jī)登記模塊的設(shè)計(jì)與實(shí)現(xiàn)在該模塊中主要是包含了主機(jī)信息的錄入、編輯查看以及刪除操作,如圖3-8所示。圖3-8主機(jī)頁(yè)面 錄入操作是在選擇添加主機(jī)后,先通過(guò)數(shù)據(jù)庫(kù)獲取到配置信息表傳遞到前端提供給用戶選擇,在用戶選擇完畢后,則將最后的信息傳遞到后臺(tái),先通過(guò)數(shù)據(jù)庫(kù)查詢有無(wú)沖突的信息,在檢測(cè)不沖突后,則進(jìn)行插入數(shù)據(jù)的操作,開(kāi)始將主機(jī)信息寫入數(shù)據(jù)庫(kù)中,這樣就完成了添加操作。編輯查看主要是通過(guò)id在數(shù)據(jù)庫(kù)中查找相關(guān)對(duì)于的主機(jī)信息,并將對(duì)應(yīng)的信息傳遞到前端,然后就將獲取的信息讀取出來(lái)并進(jìn)行展示。而刪除則是通過(guò)id在庫(kù)中查找到對(duì)于的信息,并進(jìn)行數(shù)據(jù)的刪除。該部分的主要代碼邏輯如附錄3中所示。3.4SaltStack模塊的設(shè)計(jì)與實(shí)現(xiàn)3.4.1SaltStack模塊功能流程在進(jìn)入網(wǎng)站后通過(guò)選項(xiàng)進(jìn)入SaltStack功能列表,在選擇實(shí)時(shí)狀態(tài)時(shí),可以查看已經(jīng)加入SaltStack集群中的客戶端minion節(jié)點(diǎn)的信息。在功能列表中選擇命令下發(fā)時(shí),可以進(jìn)入遠(yuǎn)程命令的功能列表,在進(jìn)入后,可以通過(guò)選擇要發(fā)布的目標(biāo)主機(jī)的匹配信息、匹配模式、執(zhí)行模塊、以及執(zhí)行命令進(jìn)行對(duì)SaltStack的操作。其中流程圖如圖3-9至3-10所示。圖3-9SaltStack實(shí)時(shí)狀態(tài)流程設(shè)計(jì)圖3-10SaltStack命令執(zhí)行流程設(shè)計(jì)3.4.2SaltStack模塊的設(shè)計(jì)與實(shí)現(xiàn)在該模塊中主要是包含了對(duì)SaltStack集群的查看實(shí)時(shí)狀態(tài)、以及命令執(zhí)行的功能,如圖3-10至3-11所示。圖3-10命令執(zhí)行功能圖3-11子節(jié)點(diǎn)實(shí)時(shí)狀態(tài) 查看實(shí)時(shí)狀態(tài)主要是通過(guò)salt命令調(diào)出相關(guān)的資源信息以及狀態(tài)信息等,通過(guò)分段保存等然后將信息傳遞到前端,并在前端調(diào)用信息進(jìn)行展示。而遠(yuǎn)程命令則是通過(guò)寫入目標(biāo)主機(jī)對(duì)象、匹配規(guī)則如使用通配符匹配還是正則表達(dá)式還是列表選擇等、選擇的執(zhí)行模塊以及具體的執(zhí)行命令來(lái)發(fā)布命令,可以通過(guò)此來(lái)實(shí)現(xiàn)批量部署、遠(yuǎn)程運(yùn)行系統(tǒng)命令、查詢某些主機(jī)的信息等等SaltStack的強(qiáng)大的功能,而在將命令傳到后端執(zhí)行后,后端通過(guò)建立一個(gè)client來(lái)處理命令,并將命令的結(jié)果返回,在通過(guò)根據(jù)不同的返回結(jié)果來(lái)進(jìn)行存放這些數(shù)據(jù)后,在將對(duì)應(yīng)的執(zhí)行結(jié)果返回前端,并在前端展示執(zhí)行的最終結(jié)果。該部分的主要代碼邏輯如附錄4中所示。第四章系統(tǒng)測(cè)試4.1運(yùn)行環(huán)境 當(dāng)前系統(tǒng)運(yùn)行在虛擬機(jī)中,使用的是Centos6.5的版本,而其他的配置如下圖4-1所示:圖4-1配置版本4.2測(cè)試過(guò)程 執(zhí)行項(xiàng)目后,通過(guò)WEB輸入訪問(wèn)地址并通過(guò)8080端口訪問(wèn)該系統(tǒng),進(jìn)入到登陸頁(yè)面,如果不輸入用戶名,則通過(guò)彈出提示如圖4-2所示,如果沒(méi)有輸出密碼,則如4-3所示,如果用戶名或密碼不正確則如4-4所示,圖4-2至4-4如下所示:圖4-2用戶名空?qǐng)D4-3密碼空?qǐng)D4-4用戶名或密碼錯(cuò)誤 在用戶名和密碼驗(yàn)證無(wú)誤后則跳轉(zhuǎn)進(jìn)入主頁(yè),在主頁(yè)中展示Master信息和Saltstack接入信息,如圖4-5所示:圖4-5主頁(yè) 在進(jìn)入主頁(yè)后,選擇主機(jī)進(jìn)入主機(jī)管理頁(yè)面,可以看到錄入的主機(jī)信息并進(jìn)行管理進(jìn)行增刪改查,如圖4-6所示:圖4-6主機(jī)管理 選擇添加主機(jī)頁(yè)面可以登記主機(jī)信息,如圖4-7所示:圖4-7登記主機(jī)信息 登記完主機(jī)信息后,可以在管理頁(yè)面看到此主機(jī)并可繼續(xù)進(jìn)行管理操作,如圖4-8所示:圖4-8添加完成 在添加完主機(jī)后可以進(jìn)行修改或者刪除操作,而點(diǎn)擊編輯后則如圖4-9所示:圖4-10編輯 在操作完主機(jī)管理的功能后,可以選擇用戶,進(jìn)入用戶管理頁(yè)面,如圖4-11所示:圖4-11用戶管理 點(diǎn)擊添加用戶,則可以進(jìn)行注冊(cè)操作,如圖4-12所示:圖4-12添加用戶 成功添加后可以在用戶管理出看到新的用戶,如圖4-13所示:圖4-13添加成功 切換用戶登陸,使用新用戶test登陸如圖4-14所示:圖4-15登陸成功在用戶信息處可以修改密碼,修改密碼如圖4-16所示圖4-16修改密碼在完成用戶管理后可以選擇SaltStack進(jìn)入SaltStack模塊,選擇進(jìn)入實(shí)時(shí)狀態(tài),在此可以看到minion節(jié)點(diǎn)的信息,如圖4-17所示:圖4-17實(shí)時(shí)狀態(tài)在選擇命令下方,進(jìn)入命令執(zhí)行模塊,如圖4-18所示,為選擇下發(fā)安裝Apache的命令:4-18命令下發(fā)在完成后,可以點(diǎn)擊右上角的退出來(lái)完成退出系統(tǒng)。第五章總結(jié)與展望5.1總結(jié) 經(jīng)過(guò)在這么幾個(gè)月時(shí)間中的努力,通過(guò)結(jié)合了本專業(yè)相關(guān)的計(jì)算機(jī)基礎(chǔ)理論、通過(guò)額外學(xué)習(xí)并進(jìn)行實(shí)際使用的SaltStack集中管理工具以及對(duì)于開(kāi)發(fā)的知識(shí)與實(shí)踐之后,完成了本自動(dòng)化運(yùn)維系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)以及對(duì)于論文的撰寫,在這整個(gè)的過(guò)程中,通過(guò)理論與實(shí)踐的相結(jié)合也是讓我感到受益匪淺。 在開(kāi)發(fā)本自動(dòng)化運(yùn)維系統(tǒng)的過(guò)程中也是出現(xiàn)了不少的狀況,比如對(duì)于一些平時(shí)沒(méi)有用上的知識(shí)的使用出現(xiàn)了問(wèn)題以及在對(duì)于新技術(shù)的使用過(guò)程中的不熟悉導(dǎo)致進(jìn)度頗為艱難。而通過(guò)不斷的翻閱書籍以及通過(guò)網(wǎng)絡(luò)查找資料以及與他人討論才克服這些問(wèn)題。而在這么一整個(gè)過(guò)程中的最大的收益就是對(duì)于SaltStack這款工具的有了實(shí)際的了解和使用,通過(guò)它,我們能更快的完成一些繁瑣復(fù)雜的任務(wù),在實(shí)際中也是非常有幫助的。而在開(kāi)發(fā)的過(guò)程中的對(duì)于最后的總結(jié)則是認(rèn)為對(duì)于各類功能的設(shè)計(jì)以及對(duì)于對(duì)應(yīng)的數(shù)據(jù)庫(kù)的規(guī)劃要清晰以及對(duì)于系統(tǒng)的框架的規(guī)劃需要有條理且在之前就定好在由小及大串聯(lián)起來(lái),這會(huì)讓我們?cè)趯?shí)際的開(kāi)發(fā)過(guò)程中會(huì)有更好的體驗(yàn)。5.2未來(lái)展望隨著使用者所部署的地方需要管理的服務(wù)器越來(lái)越多,單單現(xiàn)在的功能是不足以繼續(xù)滿足需求的,還需要對(duì)于系統(tǒng)進(jìn)行更深入的開(kāi)發(fā)。因此本人認(rèn)為還有幾點(diǎn)需要繼續(xù)更近一步的改進(jìn)。一、結(jié)合其他的管理工具以及等提升效率的工具在進(jìn)行組合使用進(jìn)行開(kāi)發(fā)以及來(lái)提高本系統(tǒng)的功能性;二、對(duì)于當(dāng)前系統(tǒng)使用的SaltStack工具,編寫更多更細(xì)致的.sls文件來(lái)滿足更細(xì)致的面多多種場(chǎng)景的使用,因?yàn)樵诿鎸?duì)著許多需要同樣設(shè)置的同時(shí),也會(huì)出現(xiàn)不同的差異化,因此就需要在根據(jù)此進(jìn)行更細(xì)的劃分;三、對(duì)于現(xiàn)在的系統(tǒng)進(jìn)行改更細(xì)致優(yōu)化以及提供更多的功能。參考文獻(xiàn)【1】Python自動(dòng)化運(yùn)維:技術(shù)與最佳實(shí)踐[M].機(jī)械工業(yè)出版社,2014年,劉天斯著【2】SaltStack運(yùn)維實(shí)戰(zhàn)[M].電子工業(yè)出版社2016年,劉英杰著【3】SaltStack技術(shù)入門與實(shí)戰(zhàn)[M].機(jī)械工業(yè)出版社,2016年,劉繼偉;沈燦;趙舜東著【4】自動(dòng)化運(yùn)維之saltstack[Z]/13760226/2308580【5】saltstack[Z]/Richardzhu/p/5790286.html【6】自動(dòng)化運(yùn)維工具SaltStack的研究與自動(dòng)化運(yùn)維平臺(tái)建設(shè)[R]趙新;于濱;唐素珍;曹殿雪著【7】python程序設(shè)計(jì)[M].清華大學(xué)出版社,2016年【8】MySQL從入門到精通[M].清華大學(xué)出版社,明日科技2017年8月1日附錄附錄1:#登陸getPost=web.input()try:getSQL=db.query('''selectu.id,u.username,u.password,u.nickname,u.status,L.ip,L.location,L.datefromusersasuleftjoinlogin_logsasLonu.loginfo=L.idwhereusername="%s"andpassword="%s"'''%(getPost.username,getPost.password))except:web.header('Content-Type','application/json')returnjson.dumps({'code':-1,'msg':'數(shù)據(jù)庫(kù)錯(cuò)誤'})ifgetSQL:getData=getSQL[0]SID=getData['id']Username=getData['username']Status=getData['status']ShowName=getData['nickname']LastDate=getData['date']LastIP=getData['ip']LastLocation=getData['location']ifnotShowName:ShowName=UsernameifStatus=='yes':genSession(SID,Username,ShowName,LastIP,LastLocation,LastDate,False,Lstat='ok',kpl=getPost.kpl)web.header('Content-Type','application/json')returnjson.dumps({'code':0,'msg':'Success'})else:web.header('Content-Type','application/json')returnjson.dumps({'code':-2,'msg':'用戶已被禁用'})else:web.header('Content-Type','application/json')returnjson.dumps({'code':-3,'msg':'用戶名或密碼錯(cuò)誤'})#注冊(cè)

getPost=web.input()try:getSQL=db.query('''selectid,usernamefromuserswhereusername="%s"'''%(getPost.username))except:return"error"ifgetSQL:return"false"附錄2:f=open('/proc/loadavg')l=f.read().split()f.close()loadavg_1=l[0]loadavg_5=l[1]loadavg_15=l[2]#GetMemoryf=open('/proc/meminfo')m=f.readlines()f.close()mem={}forninm:iflen(n)<2:continuename=n.split(':')[0]var=n.split()[1]mem[name]=int(var)/1024mem['MemUsed']=mem['MemTotal']-mem['MemFree']-mem['Buffers']-mem['Cached']附錄3:try:getSQL=db.query('''selecthostname,priip1fromhostswherehostname="%s"orpriip1="%s"'''%(p.hostname,p.priip1))exceptException,e:print"MySQLError:",Exception,":",ereturn"Error"ifgetSQL:foriingetSQL:ifp.hostname==i.hostname:return"HostnameError"ifp.priip1==i.priip1:return"PriIP1Error" try:db.query('''insertintohosts(hostname,role,priip1,priip2,pubip1,pubip2,model,cpu,hdd,mem,os,rnum,storagedate,adminip,type,startdate,idc,idctag,snum,stag,status,comment,creator,editor)values("%s","%s","%s","%s","%s","%s","%s","%s","%s","%s","%s","%s","%s","%s","%s","%s","%s","%s","%s","%s","%s","%s","%s","%s")'''%(p.hostname,p.role,p.priip1,p.priip2,p.pubip1,p.pubip2,p.model,p.cpu,p.hdd,p.mem,p.os,p.rnum,p.storagedate,p.adminip,p.type,p.startdate,p.idc,p.idctag,p.snum,p.stag,p.status,ment,getLogin()['SID'],getLogin()['SID']))exceptException,e:print"MySQLError:",Exception,":",ereturn"Error"return"Add.True"附錄4:c=web.input()fun=c.funarg=c.argtgt=c.tgtexpr_form=c.expr_formtimeout=c.timeoutiftimeout.isdigit():timeout=int(timeout)else:timeout=NoneArg=[arg]local=salt.client.LocalClient()FL=Cmd.CMD致謝時(shí)光飛逝,一眨眼間我就在美麗的東軟學(xué)院中度過(guò)了四年。這四年,這是我人生中非常重要的四年,我很幸運(yùn)能夠接觸到這些不僅傳授我的知識(shí),還能從更高的層次來(lái)指導(dǎo)我的人生和追求價(jià)值的老師,還有態(tài)度積極樂(lè)觀、互相進(jìn)步的同學(xué)們。它們使我在學(xué)校中生活充實(shí),在之后也擁有了繼續(xù)追求前進(jìn)的動(dòng)力,為我的大學(xué)生活畫下來(lái)一個(gè)完美的句號(hào)。在這篇論文的設(shè)計(jì)過(guò)程中,從一開(kāi)始確定論文題目到項(xiàng)目的實(shí)現(xiàn),最后到論文的完成,總共花費(fèi)了三個(gè)多月時(shí)間。這其中我經(jīng)歷了很多的困難,面臨過(guò)不少困惑,但我最終克服了它們。我要感謝我的畢業(yè)論文導(dǎo)師趙元成老師,在學(xué)習(xí)過(guò)程中,老師給了我詳細(xì)的指導(dǎo),從選題指導(dǎo),論文框架到詳細(xì)修改,并提出了許多有價(jià)值的建議。當(dāng)我在論文中期遇到難題的時(shí)候,他指導(dǎo)了我論文寫作的思路和方向。感謝給我論文提供了幫助和意見(jiàn)的朋友和同學(xué)們和查閱資料時(shí)指明方向的各位作者,他們的幫助讓我在論文的編寫中有了很大的啟發(fā)。最后,我特別的感謝我的父母,是他們支持我完成學(xué)業(yè),是他們?yōu)槲姨峁┝艘粋€(gè)堅(jiān)強(qiáng)的后盾以及對(duì)我的包容與愛(ài)。在此,我要向所有在百忙之中審閱論文并參加答辯的專家教授們表示衷心的感謝!

怎樣提高電腦系統(tǒng)運(yùn)行速度WindowsXP的啟動(dòng)速度比Windows2000要快30%左右,但相對(duì)于Windows98仍然要慢了不少,不過(guò),我們可以通過(guò)優(yōu)化設(shè)置,來(lái)大大提高WindowsXP的啟動(dòng)速度。加快系統(tǒng)啟動(dòng)速度主要有以下方法:盡量減少系統(tǒng)在啟動(dòng)時(shí)加載的程序與服務(wù);對(duì)磁盤及CPU等硬件進(jìn)行優(yōu)化設(shè)置;修改默認(rèn)設(shè)置,減少啟動(dòng)等待時(shí)間等。這些方法大部分既可減少系統(tǒng)啟動(dòng)的時(shí)間,又可以節(jié)省系統(tǒng)資源,加快電腦運(yùn)行速度。1.加快系統(tǒng)啟動(dòng)速度WindowsXP的啟動(dòng)速度比Windows2000要快30%左右,但相對(duì)于Windows98仍然要慢了不少,不過(guò),我們可以通過(guò)優(yōu)化設(shè)置,來(lái)大大提高WindowsXP的啟動(dòng)速度。加快系統(tǒng)啟動(dòng)速度主要有以下方法:盡量減少系統(tǒng)在啟動(dòng)時(shí)加載的程序與服務(wù);對(duì)磁盤及CPU等硬件進(jìn)行優(yōu)化設(shè)置;修改默認(rèn)設(shè)置,減少啟動(dòng)等待時(shí)間等。這些方法大部分既可減少系統(tǒng)啟動(dòng)的時(shí)間,又可以節(jié)省系統(tǒng)資源,加快電腦運(yùn)行速度。(1)MsconfigWindowsXP的啟動(dòng)速度在系統(tǒng)安裝初期還比較快,但隨著安裝的軟件不斷增多,系統(tǒng)的啟動(dòng)速度會(huì)越來(lái)越慢,這是由于許多軟件把自己加在了啟動(dòng)程序中,這樣開(kāi)機(jī)即需運(yùn)行,大大降低了啟動(dòng)速度,而且也占用了大量的系統(tǒng)資源。對(duì)于這樣一些程序,我們可以通過(guò)系統(tǒng)配置實(shí)用程序Msconfig將它們從啟動(dòng)組中排除出去。選擇“開(kāi)始”菜單中的“運(yùn)行”命令,在“運(yùn)行”對(duì)話框中鍵入“Msconfig”,回車后會(huì)彈出“系統(tǒng)配置實(shí)用程序”對(duì)話框,選擇其中的“啟動(dòng)”選項(xiàng)卡(如圖1),該選項(xiàng)卡中列出了系統(tǒng)啟動(dòng)時(shí)加載的項(xiàng)目及來(lái)源,仔細(xì)查看每個(gè)項(xiàng)目是否需要自動(dòng)加載,否則清除項(xiàng)目前的復(fù)選框,加載的項(xiàng)目越少,啟動(dòng)的速度就越快。設(shè)置完成后需要重新啟動(dòng)方能生效。(2)BootvisBootvis是微軟提供的一個(gè)啟動(dòng)優(yōu)化工具,可提高WindowsXP的啟動(dòng)速度。用BootVis提升WindowsXP的啟動(dòng)速度必須按照正確的順序進(jìn)行操作,否則將不會(huì)起到提速的效果。其正確的操作方法如下:?jiǎn)?dòng)Bootvis,從其主窗口(如圖2)中選擇“工具”菜單下的“選項(xiàng)”命令,在“符號(hào)路徑”處鍵入Bootvis的安裝路徑,如“C:\ProgramFiles\Bootvis”,單擊“保存”退出。從“跟蹤”菜單中選擇“下次引導(dǎo)”命令,會(huì)彈出“重復(fù)跟蹤”對(duì)話框,單擊“確定”按鈕,BootVis將引導(dǎo)WindowsXP重新啟動(dòng),默認(rèn)的重新啟動(dòng)時(shí)間是10秒。系統(tǒng)重新啟動(dòng)后,BootVis自動(dòng)開(kāi)始運(yùn)行并記錄啟動(dòng)進(jìn)程,生成啟動(dòng)進(jìn)程的相關(guān)BIN文件,并把這個(gè)記錄文件自動(dòng)命名為TRACE_BOOT_1_1。程序記錄完啟動(dòng)進(jìn)程文件后,會(huì)重新啟動(dòng)BootVis主界面,在“文件”菜單中選擇剛剛生成的啟動(dòng)進(jìn)程文件“TRACE_BOOT_1_1”。窗口中即會(huì)出現(xiàn)“CPU>使用”、“磁盤I/O”、“磁盤使用”、“驅(qū)動(dòng)程序延遲”等幾項(xiàng)具體圖例供我們分析,不過(guò)最好還是讓BootVis程序來(lái)自動(dòng)進(jìn)行分析:從“跟蹤”菜單中選擇“系統(tǒng)優(yōu)化”命令,程序會(huì)再次重新啟動(dòng)計(jì)算機(jī),并分析啟動(dòng)進(jìn)程文件,從而使計(jì)算機(jī)啟動(dòng)得更快。(3)禁用多余的服務(wù)WindowsXP在啟動(dòng)時(shí)會(huì)有眾多程序或服務(wù)被調(diào)入到系統(tǒng)的內(nèi)存中,它們往往用來(lái)控制Windows系統(tǒng)的硬件設(shè)備、內(nèi)存、文件管理或者其他重要的系統(tǒng)功能。但這些服務(wù)有很多對(duì)我們用途不大甚至根本沒(méi)有用,它們的存在會(huì)占用內(nèi)存和系統(tǒng)資源,所以應(yīng)該將它們禁用,這樣最多可以節(jié)省70MB的內(nèi)存空間,系統(tǒng)速度自然也會(huì)有很大的提高。選擇“開(kāi)始”菜單中的“運(yùn)行”命令,在“運(yùn)行”對(duì)話框鍵入“services.msc”后回車,即可打開(kāi)“服務(wù)”窗口。窗口的服務(wù)列表中列出了系統(tǒng)提供的所有服務(wù)的名稱、狀態(tài)及啟動(dòng)類型。要修改某個(gè)服務(wù),可從列表雙擊它,會(huì)彈出它的屬性對(duì)話框(如圖3),你可從“常規(guī)”選項(xiàng)卡對(duì)服務(wù)進(jìn)行修改,通過(guò)單擊“啟動(dòng)”、“停止”、“暫?!?、“恢復(fù)”四個(gè)按鈕來(lái)修改服務(wù)的狀態(tài),并可從“啟動(dòng)類型”下拉列表中修改啟動(dòng)類型,啟動(dòng)類型有“自動(dòng)”、“手動(dòng)”、“已禁用”三種。如果要禁止某個(gè)服務(wù)在啟動(dòng)自動(dòng)加載,可將其啟動(dòng)類型改為“已禁用”。WindowsXP提供的所有服務(wù)有36個(gè)默認(rèn)是自動(dòng)啟動(dòng)的,實(shí)際上,其中只有8個(gè)是必須保留的(見(jiàn)下表),其他的則可根據(jù)自己的需要進(jìn)行設(shè)置,每種服務(wù)的作用在軟件中有提示。4)修改注冊(cè)表來(lái)減少預(yù)讀取,減少進(jìn)度條等待時(shí)間WindowsXP在啟動(dòng)過(guò)程中會(huì)出現(xiàn)一個(gè)進(jìn)度條,我們可以通過(guò)修改注冊(cè)表,讓進(jìn)度條只跑一圈就進(jìn)入登錄畫面。選擇“開(kāi)始”菜單中的“運(yùn)行”命令,在“運(yùn)行”對(duì)話框鍵入“regedit”命令后回車,即可啟動(dòng)注冊(cè)表編輯器,在注冊(cè)表中找HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement\PrefetchParameters,選擇其下的EnablePrefetcher鍵,把它的鍵值改為“1”即可。(5)減少開(kāi)機(jī)磁盤掃描等待時(shí)間當(dāng)Windows日志中記錄有非正常關(guān)機(jī)、死機(jī)引起的重新啟動(dòng),系統(tǒng)就會(huì)自動(dòng)在啟動(dòng)的時(shí)候運(yùn)行磁盤掃描程序。在默認(rèn)情況下,掃描每個(gè)分區(qū)前會(huì)等待10秒鐘,如果每個(gè)分區(qū)都要等上10秒才能開(kāi)始進(jìn)行掃描,再加上掃描本身需要的時(shí)間,會(huì)耗費(fèi)相當(dāng)長(zhǎng)的時(shí)間才能完成啟動(dòng)過(guò)程。對(duì)于這種情況我們可以設(shè)置取消磁盤掃描的等待時(shí)間,甚至禁止對(duì)某個(gè)磁盤分區(qū)進(jìn)行掃描。選擇“開(kāi)始→運(yùn)行”,在運(yùn)行對(duì)話框中鍵入“chkntfs/t:0”,即可將磁盤掃描等待時(shí)間設(shè)置為0;如果要在計(jì)算機(jī)啟動(dòng)時(shí)忽略掃描某個(gè)分區(qū),比如C盤,可以輸入“chkntfs/xc:”命令;如果要恢復(fù)對(duì)C盤的掃描,可使用“chkntfs/dc:”命令,即可還原所有chkntfs默認(rèn)設(shè)置,除了自動(dòng)文件檢查的倒計(jì)時(shí)之外。2.提高系統(tǒng)運(yùn)行速度提升系統(tǒng)運(yùn)行速度的思路與加快啟動(dòng)的速度類似:盡量?jī)?yōu)化軟硬件設(shè)置,減輕系統(tǒng)負(fù)擔(dān)。以下是一些常用的優(yōu)化手段。(1)設(shè)置處理器二級(jí)緩存容量WindowsXP無(wú)法自動(dòng)檢測(cè)處理器的二級(jí)緩存容量,需要我們自己在注冊(cè)表中手動(dòng)設(shè)置,首先打開(kāi)注冊(cè)表,找到“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement\”,選擇其下的“SecondLevelDataCache”,根據(jù)自己所用的處理器設(shè)置即可,例如PIIICoppermine/P4Willamette是“256”,AthlonXP是“384”,P4Northwood是“512”。(2)提升系統(tǒng)緩存同樣也是在“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement\”位置,把其下的“LargeSystemCache”鍵值從0改為1,WindowsXP就會(huì)把除了4M之外的系統(tǒng)內(nèi)存全部分配到文件系統(tǒng)緩存中,這樣X(jué)P的內(nèi)核能夠在內(nèi)存中運(yùn)行,大大提高系統(tǒng)速度。通常來(lái)說(shuō),該優(yōu)化會(huì)使系統(tǒng)性能得到相當(dāng)?shù)奶嵘?,但也有可能?huì)使某些應(yīng)用程序性能降低。需要注意的是必須有256M以上的內(nèi)存,激活LargeSystemCache才可起到正面的作用,否則不要輕易改動(dòng)它。(3)改進(jìn)輸入/輸出性能這個(gè)優(yōu)化能夠提升系統(tǒng)進(jìn)行大容量文件傳輸時(shí)的性能,不過(guò)這只對(duì)服務(wù)器用戶才有實(shí)在意義。我們可在中新建一個(gè)DWORD(雙字節(jié)值)鍵值,命名為IOPageLockLimit。一般情況下把數(shù)據(jù)設(shè)置8~16MB之間性能最好,要記住這個(gè)值是用字節(jié)來(lái)計(jì)算的,例如你要分配10MB的話,就是10×?1024×1024,也就是10485760。這里的優(yōu)化也需要你的機(jī)器擁有大于256M的內(nèi)存。(4)禁用內(nèi)存頁(yè)面調(diào)度在正常情況下,XP會(huì)把內(nèi)存中的片斷寫入硬盤,我們可以阻止它這樣做,讓數(shù)據(jù)保留在內(nèi)存中,從而提升系統(tǒng)性能。在注冊(cè)表中找到“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement\”下的“DisablePagingExecutive”鍵,把它的值從0改為1即可禁止內(nèi)存頁(yè)面調(diào)度了。(5)關(guān)閉自動(dòng)重新啟動(dòng)功能當(dāng)WindowsXP遇到嚴(yán)重問(wèn)題時(shí)便會(huì)突然重新開(kāi)機(jī),可從注冊(cè)表將此功能取消。打開(kāi)注冊(cè)表編輯器,找到“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl\”將AutoReboot鍵的Dword值更改為0,重新啟動(dòng)后設(shè)置即可生效。(6)改變視覺(jué)效果WindowsXP在默認(rèn)情況下啟用了幾乎所有的視覺(jué)效果,如淡入淡出、在菜單下顯示陰影。這些視覺(jué)效果雖然漂亮,但對(duì)系統(tǒng)性能會(huì)有一定的影響,有時(shí)甚至造成應(yīng)用軟件在運(yùn)行時(shí)出現(xiàn)停頓。一般情況下建議少用或者取消這些視覺(jué)效果。選擇桌面上“我的電腦”圖標(biāo),單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇“屬性”命令,打開(kāi)“系統(tǒng)屬性”對(duì)話框。選擇“高級(jí)”選項(xiàng)卡,在其中的“性能”欄中單擊“設(shè)置”按鈕,會(huì)彈出“性能選項(xiàng)”對(duì)話框(如圖4),可選擇“調(diào)整為最佳性能”單選框來(lái)關(guān)閉所有的視覺(jué)效果,也可選擇“自定義”然后選擇自己需要的視覺(jué)效果。(7)合理設(shè)置頁(yè)面虛擬內(nèi)存同樣也是在“性能選項(xiàng)”對(duì)話框中,選擇“高級(jí)”選項(xiàng)卡,在其中的“虛擬內(nèi)存”欄中單擊“更改”按鈕,接下來(lái)選擇虛擬內(nèi)存為“自定義大小”,然后設(shè)置其數(shù)值。一般情況下,把虛擬設(shè)為不小于256M,不大于382M比較合適,而且最大值和最小值最好一樣。(8)修改外觀方案WindowsXP默認(rèn)的外觀方案雖然漂亮,但對(duì)系統(tǒng)資源的占用也多,可將其改為經(jīng)典外觀以獲得更好的性能。在桌面空白位置單擊鼠標(biāo)右鍵,從彈出的快捷菜單中選擇“屬性”命令,會(huì)打開(kāi)“顯示屬性”對(duì)話框,在“主題”選項(xiàng)卡選擇主題為“Windows經(jīng)典”,即可將外觀修改為更為經(jīng)濟(jì)的Windows經(jīng)典外觀。(9)取消XP對(duì)ZIP支持WindowsXP在默認(rèn)情況下打開(kāi)了對(duì)zip文件支持,這要占用一定的系統(tǒng)資源,可選擇“開(kāi)始→運(yùn)行”,在“運(yùn)行”對(duì)話框中鍵入“regsvr32/uzipfldr.dll”,回車確認(rèn)即可取消XP對(duì)ZIP解壓縮的支持,從而節(jié)省系統(tǒng)資源。(10)關(guān)閉Dr.WatsonDr.Watson是WindowsXP的一個(gè)崩潰分析工具,它會(huì)在應(yīng)用程序崩潰的時(shí)候自動(dòng)彈出,并且在默認(rèn)情況下,它會(huì)將與出錯(cuò)有關(guān)的內(nèi)存保存為DUMP文件以供程序員分析。不過(guò),記錄DUMP文件對(duì)普通用戶則毫無(wú)幫助,反而會(huì)帶來(lái)很大的不便:由于Dr.Watson在應(yīng)用程序崩潰時(shí)會(huì)對(duì)內(nèi)存進(jìn)行DUMP記錄,將出現(xiàn)長(zhǎng)時(shí)間硬盤讀寫操作,要很長(zhǎng)一斷時(shí)間程序才能關(guān)閉,并且DUMP文件還會(huì)占用大量磁盤空間。要關(guān)閉Dr.Watson可打開(kāi)注冊(cè)表編輯器,找到“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\AeDebug”分支,雙擊其下的Auto鍵值名稱,將其“數(shù)值數(shù)據(jù)”改為0,最后按F5刷新使設(shè)置生效,這樣就取消它的運(yùn)行了。同樣,我們可以把所有具備調(diào)試功能的選項(xiàng)取消,比如藍(lán)屏?xí)r出現(xiàn)的memory.dmp,可在“系統(tǒng)屬性”對(duì)話框中選擇“高級(jí)”選項(xiàng)卡,單擊“啟動(dòng)和故障恢復(fù)”欄中的“設(shè)置”按鈕,并在彈出的“啟動(dòng)和故障恢復(fù)”對(duì)話框中選擇“寫入調(diào)試信息”為“無(wú)”(如圖5)。(11)啟動(dòng)硬盤/光驅(qū)DMA模式打開(kāi)“系統(tǒng)屬性”對(duì)話框,選擇“硬件”選擇卡中的“設(shè)備管理器”按鈕,打開(kāi)“設(shè)備管理器”窗口,在設(shè)備列表中選擇“IDEATA/ATAPI控制器”,雙擊“主要IDE通道”或“次要IDE通過(guò)”,在其屬性對(duì)話框的“高級(jí)設(shè)置”選項(xiàng)卡中檢查DMA模式是否已啟動(dòng),一般來(lái)說(shuō)如果設(shè)備支持,系統(tǒng)就會(huì)自動(dòng)打開(kāi)DMA功能,如果沒(méi)有打開(kāi)可將“傳輸模式”設(shè)為“DMA(若可用)”。(12)關(guān)掉不用的設(shè)備WindowsXP總是盡可能為電腦的所有設(shè)備安裝驅(qū)動(dòng)程序并進(jìn)行管理,這不僅會(huì)減慢系統(tǒng)啟動(dòng)的速度,同時(shí)也造成了系統(tǒng)資源的大量占用。針對(duì)這一情況,你可在設(shè)備管理器中,將PCMCIA卡、調(diào)制解調(diào)器、紅外線設(shè)備、打印機(jī)端口(LPT1)或者串口(COM1)等不常用的設(shè)備停用,方法是雙擊要停用的設(shè)備,在其屬性對(duì)話框中的“常規(guī)”選項(xiàng)卡中選擇“不要使用這個(gè)設(shè)備(停用)”。在重新啟動(dòng)設(shè)置即可生效,當(dāng)需要使用這些設(shè)備時(shí)再?gòu)脑O(shè)備管理器中啟用它們。(13)關(guān)閉錯(cuò)誤報(bào)告當(dāng)應(yīng)用程序出錯(cuò)時(shí),會(huì)彈出發(fā)送錯(cuò)誤報(bào)告的窗口,其實(shí)這樣的錯(cuò)誤報(bào)告對(duì)普通用戶而言幾乎沒(méi)有任何意義,關(guān)閉它是明智的選擇。在“系統(tǒng)屬性”對(duì)話框中選擇“高級(jí)”選項(xiàng)卡,單擊“錯(cuò)誤報(bào)告”按鈕,在彈出的“錯(cuò)誤匯報(bào)”對(duì)話框中,選擇“禁用錯(cuò)誤匯報(bào)”單選項(xiàng),最后單擊“確定”即可。另外我們也可以從組策略中關(guān)閉錯(cuò)誤報(bào)告:從“運(yùn)行”中鍵入“gpedit.msc”,運(yùn)行“組策略編輯器”,展開(kāi)“計(jì)算機(jī)配置→管理模板→系統(tǒng)→錯(cuò)誤報(bào)告功能”,雙擊右邊設(shè)置欄中的“報(bào)告錯(cuò)誤”,在彈出的“屬性”對(duì)話框中選擇“已禁用”單選框即可將“報(bào)告錯(cuò)誤”禁用。(14)關(guān)閉自動(dòng)更新“自動(dòng)更新”功能對(duì)許多WindowsXP用戶而言并不是必需的,可將其關(guān)閉以節(jié)省系統(tǒng)資源。在“我的電腦”上單擊鼠標(biāo)右鍵,從快捷菜單中選擇“屬性”命令,選擇“系統(tǒng)屬性”對(duì)話框中的“自動(dòng)更新”選項(xiàng)卡,勾選“關(guān)閉自動(dòng)更新,我將手動(dòng)更新計(jì)算機(jī)”單選框,單擊“確定”按鈕即可關(guān)閉自動(dòng)更新功能。如果在“服務(wù)”已經(jīng)將“AutomaticUpdates”服務(wù)關(guān)閉,“系統(tǒng)屬性”對(duì)話框中的“自動(dòng)更新”選項(xiàng)卡就不能進(jìn)行任何設(shè)置了。(15)去掉菜單延遲去掉菜單彈出時(shí)的延遲,可以在一定程度上加快XP。要修改的鍵值位置在“HKEY_CURRENT_USER\ControlPanel\Desktop”。修改其下的“MenuShowDelay”鍵,把默認(rèn)的400修改為0,按F5刷新注冊(cè)表即可生效。(16)清除預(yù)讀文件WindowsXP的預(yù)讀設(shè)置雖然可以提高系統(tǒng)速度,但是使用一段時(shí)間后,預(yù)讀文件夾里的文件數(shù)量會(huì)變得相當(dāng)龐大,導(dǎo)致系統(tǒng)搜索花費(fèi)的時(shí)間變長(zhǎng)。而且有些應(yīng)用程序會(huì)產(chǎn)生死鏈接文件,更加重了系統(tǒng)搜索的負(fù)擔(dān)。所以,應(yīng)該定期刪除這些預(yù)讀文件。預(yù)計(jì)文件存放在WindowsXP系統(tǒng)文件夾的Prefetch文件夾中,該文件夾下的所有文件均可刪除。(17)關(guān)閉自動(dòng)播放功能在WindowsXP中,當(dāng)往光驅(qū)中放入光盤或?qū)SB硬盤接上電腦時(shí),系統(tǒng)都會(huì)自動(dòng)將光驅(qū)或USB硬盤掃描一遍,同時(shí)提示你是否播放里面的圖片、視頻、音樂(lè)等文件,如果是擁有多個(gè)分區(qū)的大容量的USB硬盤,掃描會(huì)耗費(fèi)很長(zhǎng)的時(shí)間,而且你得多次手動(dòng)關(guān)閉提示窗口,非常麻煩。這種情況下我們可以將WindowsXP的自動(dòng)播放功能關(guān)閉。運(yùn)行“組策略”程序。在組策略窗口左邊欄中,打開(kāi)“計(jì)算機(jī)配置”,選擇“管理模板”下的“系統(tǒng)”,然后在右邊的配置欄中找到“關(guān)閉自動(dòng)播放”并雙擊它,會(huì)彈出“關(guān)閉自動(dòng)播放屬性”對(duì)話框。在其中“設(shè)置”選項(xiàng)卡中選擇“已啟用”,“關(guān)閉自動(dòng)播放”下拉列表中選擇“所有驅(qū)動(dòng)器”(如圖6)。這樣以后就不用擔(dān)心WindowsXP的“自動(dòng)播放”功能帶來(lái)的麻煩了。如果你只是想禁止系統(tǒng)掃描某個(gè)驅(qū)動(dòng)器(如USB硬盤)上的文件,可采用下面的方法。先連上你的USB硬盤,讓系統(tǒng)將它識(shí)別出來(lái)。然后打開(kāi)“我的電腦”,選擇USB硬盤上的某個(gè)分區(qū),按鼠標(biāo)右鍵,會(huì)彈出磁盤屬性窗口,選取“自動(dòng)播放”選項(xiàng)卡,將所有內(nèi)容的類型都選擇為不執(zhí)行操作。如果USB硬盤有多個(gè)分區(qū),對(duì)所有分區(qū)都進(jìn)行同樣的操作,這樣當(dāng)你將USB驅(qū)動(dòng)器拔掉再重新接上時(shí),系統(tǒng)會(huì)將USB硬盤識(shí)別出來(lái),而不會(huì)反復(fù)問(wèn)你是否播放USB硬盤中的文件了。3.加快關(guān)機(jī)速度WindowsXP的關(guān)機(jī)速度要慢于啟動(dòng)速度,特別有些任務(wù)還需要手工結(jié)束,更加延緩了關(guān)機(jī)速度。因此,要加快關(guān)機(jī)速度,首先要開(kāi)啟WindowsXP的自動(dòng)結(jié)束任務(wù)功能。具體步驟是:從注冊(cè)表中找到“HKEY_CURRENT_USER\ControlPanel\Desktop”,把“AutoEndTasks”的鍵值設(shè)置為1即可。然后再修改“HungAppTimeout”為“4000(或更小)”(預(yù)設(shè)為5000),該鍵值同樣也在“HKEY_CURRENT_USER\ControlPanel\Desktop”下;最后一步再找到“HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\”,同樣把WaitToKillServiceTimeout設(shè)置為“4000”;通過(guò)這樣設(shè)置后的關(guān)機(jī)速度明顯要加快了。夠全面吧~~◆二、硬件優(yōu)化設(shè)置◆1、關(guān)掉不用的設(shè)備

在設(shè)備管理器中,將PCMCIA卡、調(diào)制解調(diào)器、紅外線設(shè)備、打印機(jī)端口(LPT1)或者串口(COM1)等不常用的設(shè)備停用,在要停用設(shè)備屬性對(duì)話框中的“常規(guī)”選項(xiàng)卡中選擇“不要使用這個(gè)設(shè)備(停用)”。當(dāng)需要使用這些設(shè)備時(shí)再?gòu)脑O(shè)備管理器中啟用它們?!?、內(nèi)存性能優(yōu)化

WindowsXP中有幾個(gè)選項(xiàng)可以優(yōu)化內(nèi)存性能,它們?nèi)荚谧?cè)表下面位置:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession

ManagerMemory

Management

1)禁用內(nèi)存頁(yè)面調(diào)度(Paging

Executive)

XP會(huì)把內(nèi)存中的片斷寫入硬盤,我們可以阻止它這樣做,讓數(shù)據(jù)保留在內(nèi)存中,從而提升系統(tǒng)性能。256M以上內(nèi)存才使用這個(gè)設(shè)置。把“DisablePagingExecutive”的值從0改為1就可以禁止內(nèi)存頁(yè)面調(diào)度了。

2)提升系統(tǒng)緩存

必須有256M以上的內(nèi)存,才激活它。把LargeSystemCache鍵值從0改為1,一般來(lái)說(shuō),這項(xiàng)優(yōu)化會(huì)使系統(tǒng)性能得到相當(dāng)?shù)奶嵘?,但也有可能?huì)使某些應(yīng)用程序性能降低。

3)輸入/輸出性能

內(nèi)存大于256M才更改這里的值,這個(gè)優(yōu)化只對(duì)server

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論