自動化腳本PowerShell部署方案
IT業(yè)已經(jīng)達(dá)成共識的一點(diǎn)是,一個可以提供基于標(biāo)準(zhǔn)的、跨平臺的、可擴(kuò)展的自動化工具是值得投資的。但是不同供應(yīng)商提供的GUI都有其優(yōu)勢,對于大多數(shù)自動化需求來說都可以使用PowerShell。不管你討厭還是喜歡它,都需要使用它——你將會主動或者被迫使用它進(jìn)行自動化。
使用Unix操作系統(tǒng)的IT管理員已經(jīng)使用PowerShell數(shù)十年了。他們知道真正的自動化意味著能夠在同一時(shí)間實(shí)現(xiàn)許多對象的實(shí)時(shí)互動,并且自動化腳本是最為靈活的方式。這通過命令行shell來實(shí)現(xiàn),而最主流的shell就是PowerShell。其已經(jīng)被VMware、微軟SCVMM和Citrix XenApp所采納。
下面是一個例子。業(yè)務(wù)部門需要部署一臺新的Web服務(wù)器,在上面運(yùn)行Active Server Pages .NET應(yīng)用程序。傳統(tǒng)的解決方案可能是這樣:
• 登陸服務(wù)器
• 打開GUI服務(wù)器管理器
• 選擇需要的角色和角色服務(wù)
• 重啟服務(wù)器
而基于PowerShell的解決方案如下:
• 登陸服務(wù)器
• 打開PowerShell,并輸入:
• PS> Install-WindowsFeature Web-Server, web-Asp-Net
對于小規(guī)模的需求來說這沒有很大區(qū)別。如果負(fù)載均衡集群中的50臺Web服務(wù)器都需要運(yùn)行新的ASP.NET應(yīng)用程序,GUI管理員的工作就會變成下面這樣:
• 登陸服務(wù)器
• 打開GUI服務(wù)器管理器
• 選擇需要的角色和角色服務(wù)
• 重啟服務(wù)器
• 下一臺服務(wù)器(重復(fù)50次)
這種解決方案需要幾個小時(shí)到幾個星期的工作量,并且不會產(chǎn)生任何日志文檔,還有可能出現(xiàn)忘記添加ASP.NET等這種人為錯誤。而自動化專家使用下面的方式來完成這個任務(wù):
• 打開PowerShell,并輸入:
• PS> Invoke-Command -ComputerName Web1,Web2,Web3 {Install-WindowsFeature Web-Server, web-Asp-Net}
是的,電腦主機(jī)名可以從一個文本文件、.csv文件或者***從活動目錄中進(jìn)行獲取,但是命令基本保持一致。這個例子的意義在于說明通過使用PowerShell Remoting,你可以在幾分鐘之內(nèi)完成對50臺服務(wù)器的安裝和配置工作。這是一個簡單的例子,但是意思卻十分清晰:我可以在幾分鐘內(nèi)完成所有工作,我對于業(yè)務(wù)的價(jià)值要高于GUI管理員。
這些腳本是必須的(或者逐條的)指令發(fā)給電腦,來部署和配置軟件。PowerShell v4提供了一種類似于Unix中的Puppet或Chef的定義方式,用來管理和控制系統(tǒng)配置。
再回到我的關(guān)于岳父和T系列的經(jīng)歷。他知道如何啟動汽車,但是如果我想要啟動汽車,就需要找到岳父來替我啟動,這樣就不需要我自己理解任何步驟。
PowerShell v4擁有“理想狀態(tài)配置”,意味著我可以定義一個“我需要50臺具有某種功能的新Web服務(wù)器”這樣的需求,之后資源(一步一步的指令)就會執(zhí)行我的計(jì)劃,而不需要我理解具體細(xì)節(jié)。這不幾僅僅可以用于應(yīng)用程序和服務(wù)器的部署,它還能防止大規(guī)模“漂移”(以后其他管理員配置一些不必要的配置)。
PowerShell自動化為IT管理員提供了一個跨平臺的工具來部署和維護(hù)其理想狀態(tài)。它能夠讓CIO在幾分鐘內(nèi)部署50臺新的Web服務(wù)器。總之,如果恰當(dāng)?shù)厥褂米詣踊?,就能夠使得IT部門更好的滿足業(yè)務(wù)需求。
碰巧我的岳父喜歡老舊T系列的啟動流程。但是對于關(guān)鍵業(yè)務(wù)需求來說,***通過自動化實(shí)現(xiàn),以保證安全性和可靠性。