期望狀態(tài)配置幫助系統(tǒng)管理員避免配置漂移
期望狀態(tài)配置是PowerShell 4.0和Windows Server 2012 R2中的一個(gè)新特征,從配置角度擴(kuò)展了PowerShell的功能。
期望狀態(tài)配置(DSC)背后的理念是提供一種方法,通過一組PowerShell語言擴(kuò)展來維護(hù)電腦或設(shè)備的一致性配置設(shè)置。使用DSC,你可以為你的目標(biāo)定義準(zhǔn)確的配置,實(shí)現(xiàn)連續(xù)部署并防止可怕的配置漂移。
之前你肯定已經(jīng)部署了多個(gè)服務(wù)器,你會(huì)發(fā)現(xiàn)運(yùn)行幾個(gè)月后,對比原始設(shè)置,每一個(gè)服務(wù)器的配置都略微不同。
也許其中一個(gè)有排錯(cuò)和其他相關(guān)設(shè)置,另一個(gè)也許打補(bǔ)丁了,其他的沒有。也或者是某個(gè)服務(wù)器上面的應(yīng)用程序修改了一些默認(rèn)設(shè)置,從而不同于同類的其他設(shè)備。
這就是配置漂移,不管原因是什么,終會(huì)導(dǎo)致你頭痛和潛在的失敗。你不再有清晰的已知配置,不能再把整個(gè)類型的服務(wù)器作為一臺(tái)機(jī)器進(jìn)行管理,集中管理可是公共云或者私有云的關(guān)鍵。你需要避免配置漂移。
使用腳本解決配置漂移
腳本在系統(tǒng)管理方面不是什么新鮮事,是防止配置漂移的可靠方法。它們在多個(gè)系統(tǒng)上運(yùn)行時(shí),通常會(huì)有一致的結(jié)果。編輯腳本的人通常不使用某些類型的平臺(tái)系統(tǒng)管理軟件如系統(tǒng)中心配置管理器,已經(jīng)開始使用命令式腳本。除了異常處理、事務(wù)日志和其他細(xì)節(jié),還包括制定每個(gè)執(zhí)行動(dòng)作。
例如,一個(gè)傳統(tǒng)的管理腳本通常是安裝補(bǔ)丁、設(shè)置角色、負(fù)責(zé)文件、運(yùn)行可執(zhí)行文件等等。如果指定每個(gè)即將發(fā)生的動(dòng)作,這些腳本很難改善,并且不能用于其他目的,特別是運(yùn)行在一臺(tái)機(jī)器上的行為不能準(zhǔn)確地應(yīng)用在另一臺(tái)機(jī)器上。
然而,DSC是一種說明性腳本技術(shù)。這意味著系統(tǒng)管理員或腳本編輯者可以設(shè)置系統(tǒng)配置的描述,系統(tǒng)會(huì)計(jì)算出達(dá)到這種描述狀態(tài),自己還需要什么。
但是從單純的功能性角度來看,說明性腳本的功能比不上命令型腳本,它只在系統(tǒng)配置場景中表現(xiàn)較好。例如,如果我想部署一個(gè)Web服務(wù)器的農(nóng)場,我可以這樣編寫DSC腳本:
- 我需要七個(gè)虛擬機(jī)。
- 所有的虛擬機(jī)應(yīng)該安裝IIS。
- 所有的虛擬機(jī)應(yīng)該安裝遠(yuǎn)程服務(wù)器管理工具安裝包。
- 所有的虛擬機(jī)應(yīng)該包含這些特殊的內(nèi)容文件。
DSC中包括一個(gè)配置代理組件,接收腳本信息并將其轉(zhuǎn)換成動(dòng)作,將物理系統(tǒng)狀態(tài)對齊到所描述的配置。如果我說應(yīng)該安裝IIS,該代理將檢查當(dāng)前機(jī)器上的角色,看看IIS是否可用或者是否已安裝,然后對機(jī)器進(jìn)行任何必要的更改最終達(dá)到期望的狀態(tài)。
但是期望狀態(tài)與其他管理技術(shù)有關(guān)大關(guān)聯(lián)呢?***,DSC是為了解決云——即服務(wù)器和設(shè)備按照標(biāo)準(zhǔn)操作,始終運(yùn)行,容忍缺點(diǎn)。它不是為了解決本地服務(wù)器的,系統(tǒng)中心更適合用來解決本地服務(wù)器問題。DSC可以結(jié)合系統(tǒng)中心虛擬機(jī)管理器協(xié)同工作,提供虛擬機(jī)和服務(wù),并將它們準(zhǔn)備妥善。DSC主要宗旨應(yīng)該是處理農(nóng)場機(jī)器的相關(guān)任務(wù),而不是為個(gè)人電腦解決各種不同的事情。
隨著年底Windows Server 2012 R2的發(fā)布,將會(huì)有更多DSC和PowerShell 4.0的相關(guān)報(bào)道。但是現(xiàn)在,你又多了一個(gè)學(xué)習(xí)PowerShell的理由。