在電腦系統的世界裡,儘管友善的視窗介面設計打敗了以命令操作為主的各類系統,但對資深的IT工作者來說,命令管理主控台才是真正掌控IT整體自動化維運的最佳選擇。此刻讓我們暫時拋開對VMware vSphere Web Client的依賴,一同學習如何使用PowerCLI命令管理主控台來更有效率地管理vSphere 6.0架構下的虛擬機器。
Get-VMHost可是管理員最常使用的命令之一,單獨執行時,不但可以知道在目前vCenter架構下有哪些ESXi主機,還能夠查看每一部主機的IP位址、連線狀態、電源狀態、CPU數量、CPU總資源、CPU使用率、總記憶體大小、記憶體使用率以及ESXi系統版本。
另一個常見的用法則是將指定的獨立ESXi主機納入vCenter的管理,只要執行「Add-VMHost -Name Host -Location (Get-Datacenter Datacenter) -User root -Password password」命令格式即可,其中來源的主機名稱(Host)、root帳號、密碼以及目的地的資料中心名稱(Datacenter)必須正確輸入。
TOP 2:在Windows PowerShell中使用PowerCLI命令
在預設的狀態下,PowerCLI所使用的命令視窗是傳統的命令提示列(Cmd),使用起來並沒有先進的Windows PowerShell視窗來得便利,就以調整一個最簡單的視窗大小來說,傳統的Cmd命令提示視窗就顯得相當笨拙,雖然這項設計在Windows 10和Windows Server 2016版本中將獲得大幅改善,但恐怕也必須有PowerCLI的更新版本才能相容。
在此之前,最理想的操作介面肯定是Windows PowerShell。然而,在直接開啟Windows PowerShell來執行PowerCLI任何命令時,肯定會出現沒有此命令的錯誤訊息,這是因為尚未載入其相關元件,只要如圖6所示執行「Add-PSSnapin VMware.VimAutomation.Core」與「Add-PSSnapin VMware.VimAutomation.Cloud」兩個命令即可。
|
▲圖6 加入VMware管理單元。 |
「Add-PSSnapin VMware.VimAutomation.Cloud」命令是選用的元件,也就是用來管理vCloud的管理單元,必須搭配PowerCLI的自訂安裝設定才行,若不需要可以省略。若想查看已成功註冊的管理單元,只要下達「Get-PSSnapin -Registered」命令即可。
完成vSphere PowerCLI元件註冊後,可以先如圖7所示分別執行「Get-Command -Noun VM」與「Get-Command -Module VMWare*」兩個命令參數,來查看與VM名詞以及與VMware模組有關的命令清單。
|
▲圖7 查詢可用的VMware命令。 |
如果有顯示出如同範例中的執行結果,即表示已經可以在Windows PowerShell中使用vSphere PowerCLI元件下的各種模組命令,來遠端連線管理vSphere所有ESXi主機與虛擬機器。
最後,嘗試執行「Connect-VIServer」命令來連線登入指定的vCenter Server,然後再如圖8所示下達「Get-VMHost」與「Get-VM」兩個常用命令,測試是否能夠取得目前所有ESXi主機及虛擬機器清單。
|
▲圖8 VMware命令測試。 |
TOP 3:管理虛擬機器的幾個重要PowerCLI命令介紹
在PowerCLI眾多的命令集合中,最常用的肯定是與虛擬機器管理有關的命令,其中光是一個如圖9所示的「Get-VM」命令,就會使用到因應許多不同需要的命令組合。
|
▲圖9 取得所有虛擬機器清單。 |
「Get-VM」命令在未搭配任何參數直接執行時,可以得知目前vCenter管轄內的所有需機器清單,並且會告知每一部虛擬機器的電源狀態、配置的CPU數量以及記憶體的大小。
當虛擬機器數量很多時,可能只想查看某一部ESXi主機的虛擬機器清單,這時候就可以改為執行「Get-VMHost "192.168.7.251" | Get-VM」命令,以便取得指定ESXi主機下的虛擬機器清單,其中ESXi主機的表示方式,可以使用IP位址、主機名稱或是完整的網域名稱(FQDN)。
如果想要查看某一個資源集區中的虛擬機器清單,則執行「Get-ResourcePool "測試用集區" | Get-VM」命令來查詢,其中資源集區的名稱即便是以中文命名,一樣可以正常地進行各種管理。
對於虛擬機器的建立,如果以PowerCLI命令來執行,肯定遠比透過vSphere Web Client介面操作來得有效率,因為只要事先準備好如圖10所示的命
令範例,甚至於將其儲存成一個PS1的手稿程式來執行,就可以大幅節省掉使用滑鼠點選設定的操作時間。
|
▲圖10 在指定資源集區內建立虛擬機器。 |
在這個範例中,除了有指定新虛擬機器所有存放的主機位置外,還特別指定了一個現有的資源集區(選用),當然其他像是虛擬機器的名稱、虛擬硬碟的大小與格式、資料存放區位置、虛擬記憶體大小、虛擬CPU數量以及所使用的虛擬網路皆是必要的參數
設定。
既然能夠以命令參數來建立新虛擬機器,當然也就能夠刪除現有已在關機狀態下的任何虛擬機器。例如只要如圖11所示執行「Remove-VM CentOS -DeletePermanently」命令參數,永久刪除一個名為CentOS的虛擬機器以及所屬的虛擬硬碟檔案。若想要保留虛擬硬碟檔案,只要拿掉-DeletePermanently參數即可。
|
▲圖11 永久刪除指定的虛擬機器。 |