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