PowerCLI對決PowerShell 誰才是最好的腳本
拿VMware的PowerCLI與微軟的PowerShell作比較似乎是太可能,因為前者需要后者先安裝好,且它僅是一個針對核心PowerShell環(huán)境的供應(yīng)商指定附加物。
某人僅僅基于其腳本功能而去選擇一個虛擬化平臺也是不可能的。因此,我這里的比較并不是為了設(shè)置一個讓兩家公司競爭的惡意比賽,我將告訴你各個方案中我喜歡和不喜歡的地方。希望我可以解釋兩家公司提高其腳本產(chǎn)品的方法。讓我們從微軟開始吧。
微軟的PowerShell
關(guān)于SCVMM,我喜歡虛擬化管理的一個方面是其內(nèi)置的觀察腳本窗口。這就像一個腳本記錄器,它賦予你如同PowerShell腳本一樣的抓取管理行為的能力。當(dāng)你正在SCVMM內(nèi)執(zhí)行一個把一個虛擬機(jī)轉(zhuǎn)移到另一個Hyper-V主機(jī)的轉(zhuǎn)移任務(wù)時,這是這一點的很好舉例。在這個向?qū)ЫY(jié)束時,將出現(xiàn)一個“查看腳本”按鈕,顯示一個腳本需要的確切PowerShell命令。
圖1
從某種程度上講,這完全是一個來自于SCVMM研發(fā)方式的福音。最初,SCVMM是由PowerShell管理的,后來一個圖形管理殼的研發(fā)圍繞它開展起來,因此Windows管理員并不需要了解它背后的PowerShell。
對于微軟來說,揭示在后臺運行的PowerShell并不難。雖然這不利于管理員使用每個循環(huán)、錯誤檢查以及日志的變量來編寫PowerShell腳本,但是這對接觸PowerShell的新手們來說是非常有用的,至少可以讓他們克服在學(xué)習(xí)如何通過基本的PowerShell命令集來執(zhí)行普通的管理任務(wù)時的困難階段。
目前,Hyper-V還沒有一個官方的命令集,但是James O'Neill創(chuàng)建了一個集合并存儲在Codeplex網(wǎng)站。O'Neill采用了應(yīng)用程序接口并編寫了基于此的命令集。隨著SCVMM 2012的發(fā)布,命令集的數(shù)量將會顯著增加,人們在SCVMM中可以做的任務(wù)量通常也會大幅增加。
VMware的PowerCLI
VMware已經(jīng)大步前進(jìn)地在PowerShell中增加了許多新功能,它被稱為PowerCLI。在連續(xù)的發(fā)布中,公司已經(jīng)顯著增加了產(chǎn)品中命令集的數(shù)量,差不多有250個命令集。之前的補(bǔ)充缺乏控制ESX主機(jī)iSCSI堆棧的命令集,雖然最近的vSphere4.1版本已經(jīng)填補(bǔ)了這一缺口。
但仍然到處存在奇怪的漏洞。例如,沒有任何有意義的有關(guān)VMware分布式虛擬網(wǎng)絡(luò)切換器的命令集??磥砉举澩瑢⑵?ldquo;Host Profiles”功能作為新創(chuàng)建的ESX主機(jī)的主要配置工具。購買Enterprise和SKU的客戶有權(quán)使用分布式虛擬網(wǎng)路切換器和Host Profiles。
未來版本中會有新的部署方法,它們強(qiáng)調(diào)會在部署新的ESX主機(jī)時在PowerCLI上使用host profiles。值得一提的是,虛擬化專家Luc Dekens已經(jīng)研發(fā)出考慮到DvSwitches管理的功能。如此說來,PowerCLI在VMware社區(qū)的主要用途是報告和檢查vSphere環(huán)境。諸如virtu-al.com的“健康檢查”腳本也已經(jīng)非常受歡迎。
VMware的軟件開發(fā)包就是一切。這個極其豐富的接口讓訪問人幾乎可以執(zhí)行每一個想要的行動,無論是在主機(jī)上還是vCenter管理服務(wù)器上。這與微軟唯一官方支持的命令集只針對SCVMM形成了對比。VMware和微軟之間存在一些共同之處:都對其管理程序所謂的“免費”版本提供極其有限的PowerShell支持。對于客戶可能得到一個免費的管理程序,并用命令行工具管理它而不是為這個管理塊支付溢價這一點,兩家公司都持謹(jǐn)慎態(tài)度。
vCenter自身沒有將PowerCLI直接集成到vSphere客戶端。想要尋找一些將管理“記錄”成PowerCLI代碼的方法,你可以查看VMware Onyx,它是一個放置在vSphere客戶端和vCenter之間的免費設(shè)備,它將行為以原始的PowerCLI SDK代碼形式輸出。附帶說一下,它也把行為以適合VMware的Orchestrator的Java腳本格式輸出。
Onyx的輸出可能會有點讓人不知所措,但請不要被嚇到。通過一個圖形用戶界面和在任務(wù)完成之后收集的PowerCLI代碼,我們用于執(zhí)行管理任務(wù)的方式更為友好。人們應(yīng)該利用PowerGUI的前端以及可擴(kuò)展其功能的各種PowerPacks。PowerGUI對包括活動目錄在內(nèi)的種類繁多的管理任務(wù)有效,但是從虛擬化的角度來看,為VMware的vSphere、Citrix的XenServer、Microsoft的HyperV、虛擬磁盤分析、HP的虛擬連接以及Quest的vWorkspace準(zhǔn)備了PowerPacks。
圖2
與此同時,VMware正在試圖將PowerCLI支持?jǐn)U展到其他技術(shù),這也是微軟已經(jīng)準(zhǔn)備要在今后做的事情。這里有一個PowerCLI作為VMware的虛擬桌面解決方案,稱為View,但是這個實施方案與vSphere PowerCLI的實施大不相同。感覺起來它更像一個DOS命令行系統(tǒng)而不是PowerShell,并且它允許流水線技術(shù)以及查詢對象的屬性和特性。截至目前,雖然像虛擬機(jī)站點恢復(fù)管理這樣的技術(shù)不具有PowerCLI,但是它很有可能出現(xiàn)在虛擬機(jī)的雷達(dá)屏幕上。
對于那些沒有生活在Windows世界的人來講,PowerShell和PowerCLI已經(jīng)在系統(tǒng)管理世界引起了巨大沖擊波。但是基于Linux的腳本編寫者也許會覺得遭受了冷落。VMware提供了Perl語言,而微軟沒有,但這是指日可待的。
相似的老版CLI和遠(yuǎn)程CLI似乎也正在消亡,就像VMware到vCLI和vCLI設(shè)備的“ESX”命令行端口一樣?,F(xiàn)在,它們想要一個中間步驟,想讓VMware客戶對老版“服務(wù)控制臺”環(huán)境的依賴?,F(xiàn)在,似乎PowerShell和PowerCLI為為可預(yù)見的未來規(guī)定系統(tǒng)管理員的休息場所。
【編輯推薦】