PowerCLI,即VMware vSphere PowerCLI 是一款功能強大的命令行工具,可自動執行 vSphere 的各方面管理,包括主機、網路、存儲、虛擬機、客戶作業系統等等。 PowerCLI 作為 Windows PowerShell 外掛程式分發,包括超過 150 個 PowerShell cmdlet,以及文檔和示例。 PowerCLI 將 vSphere 平台與 Windows 和 .*-NET 無縫地融合在一起,這意味著您可以單獨使用 PowerCLI,也可以在眾多其他第三方工具中使用。
基本介紹
- 外文名:PowerCLI
- 內容一:概述
- 內容二:詳解PowerCLI
- 內容三:PowerCLI配置標準交換機
概念介紹,標準交換機,
概念介紹
什麼是PowerCLI 讓我們來假設,此刻,您不是什麼Perl語言的狂熱愛好者(開個玩笑)。總之,如果您現在用Perl來管理您的vSphere環境,您可能比較難以想像自動化,在使用腳本語言時的重複過程,這當然很好。我將呈現給您的將是一種簡短和便捷的操作方式,所以請繼續往下讀。 在開始講述PowerCLI之前,我們必須首先了解關於PowerShell的一些內容。PowerShell是一種由微軟設計開發的,面向對象的腳本語言程式和命令行shell,用於取代VBScript和以前的CMD.EXE程式;它是面向對象的(什麼是對象,稍後講述);它是一種和其他面向對象系統(如:虛擬架構)建立連線的非常有效的方式。一台虛擬機就是一個對象,也是一個主機。和VBScript不同,PowerShell是一個shell,也就是說您可以運行它並且直接通過它發布命令。 但是,更重要的是,PowerShell是一個腳本語言。腳本語言和程式語言類似,我們通過文本的形式提供指令,然後計算機運行它並完成您需要的工作。腳本語言又與程式語言不完全相同,腳本語言相比而言是一種更高層次的計算機互動方式,所以程式設計師可以較少地關注那些理論上的概念。換句話說,腳本語言位於程式語言和圖形界面之間。同樣的,它也是兩者之間的粘合劑,或者是在一個複雜的IT系統環境中的位於兩者之間的中間層。(PowerShell可以比作是飯後的甜點,或者是地板上打得蠟。) 好了,背景故事已經講了不少!PowerCLI是PowerShell的擴展。PowerCLI 內部帶有165個cmdlets(讀作command-lets),它們每一個都是一個獨立的可以分解為位元組大小的vSphere管理任務。Cmdlets使用了一些簡短的邏輯詞條的名稱,以便於人們學習和使用。
標準交換機
假設創建一個新的虛擬LAN(VLAN)。而在我們的VMware集群中共有32台ESX主機,而且是可以支持分散式資源調度(DRS)和高可用(HA)的VMware集群,那么您需要跨所有的32台ESX主機上創建新的VLAN,同時創建指定的連線埠組VLAN20。 當然,如果您使用了VMware vSphere4和新的vNetwork Distributed Switches,給分散式交換機增加連線埠組僅僅是一項瑣碎的小工作,只需要稍等一會,它就會自動為每台ESX主機添加。但是,即使您使用的是vSphere 4,也可能無法實現自動的過程,因為分散式交換機只有在最昂貴的vSphere版本中才會激活,即Enterprise Plus版本。 如果沒有Enterprise Plus版本,您被迫需要使用標準的交換機技術。那么請遵循以下的步驟,在VMware Infrastructure Client或vSphere Client中操作:
1. 選擇ESX主機;
2. 選擇Configuration頁;
3. 在Hardware Pane中選中Network選項;
4. 選擇Standard vSwitch的參數;
5. 通過運行嚮導來增加連線埠組(在這些步驟之外,該嚮導還有額外的三步操作);
6. 花費整個早上的時間用於不斷地重複步驟1-5在其餘的31台ESX主機上。
當然,執行一個重複的工作進程是非常枯燥的事情,而且還帶有極大的風險可能會發生人為錯誤。當人們不斷地去重複某項工作時,出錯誤的機率會極大地上升。
PwoerCLI如何拯救這個過程? VMware在客戶體驗上很糟糕的一點就是總讓管理員不斷地面臨這種狀況。但是這並不是完全無能為力——通過使用一組PowerCLI代碼,管理員可以在幾分鐘的時間內完成這個工作。 該過程的第一步就是學習如何在已存在的vSwitch中,為某台ESX主機添加一個連線埠組。接下來,就是把這個過程重複到集群中的每台ESX主機上,通過使用PowerCLI中的一個非常方便的“for-each”命令就可以把該配置改變套用到所有的ESX主機。為了達到這個目的,通過使用Get-VitualSwitch cmdlet命令來選擇希望調整的目標vSwitch,然後配合使用New-VirtualPortGroup命令來創建連線埠組。
接下來要做的就是確保這個過程已經在指定集群的每台ESX主機上都正確運行。為了滿足安全性和可靠性的需求,您需要採用必要的過濾機制來保證其它的無關ESX主機不會執行該命令。該過濾機制主要用於通知到PowerCLI,只對數據中心裡指定的VMware HA/DRS集群中的主機做操作。這五行命令如下:
connect-viserver xxxxxx -username corp\administrator -password vmware
Foreach ($vmhost in (get-cluster -name "AMD Cluster1" | get-vmhost))
{
$vs = Get-VirtualSwitch -VMHost $vmHost -Name "vSwitch0"
$vlan = New-VirtualPortGroup -VirtualSwitch $vs -Name "vlan20" -vlanid 20
}
注: xxxxxx為你的域名