PowerCLI - 批次升級 VMware Tools



前言

最近,在幫忙健檢 vSAN Cluster 環境時,發現有許多 VM 虛擬主機的 VMware Tools 版本已經過時未升級至新版。有關 VMware Tools 對於 VM 虛擬主機的重要性,應該無須多做解釋,有興趣了解更多的朋友,請參考 VMware KB 340 - Overview of VMware Tools

在本文中,我們將透過 PowerCLI 針對 vSAN Cluster 中運作的 VM 虛擬主機 (共 365 台),過濾出需要更新 VMware Tools 版本的 VM 虛擬主機 (共 105 台),然後批次進行 VMware Tools 版本更新作業。

什麼是 PowerCLI? 簡單來說,它是以 PowerShell 為底的 PowerCLI 模組,安裝後可以針對 VMware 虛擬化環境進行各種多項管理任務,目前已經多達 700 Cmdlet



手動檢查和升級 VMware Tools 版本

透過 vCenter Server 的管理畫面,可以很容易判斷單台 VM 虛擬主機的 VMware Tools 版本情況,可以看到這台 VM 虛擬主機的 VMware Tools 版本已經過時,並且系統提示可以升級至新版本。


管理人員可以直接點選右下方的「Upgrade VMware Tools」連結,此時系統會彈出 Upgrade VMware Tools 視窗,然後依據需求選擇「Interactive Upgrade」或「Automatic Upgrade」後,按下 UPGRADE 鈕。
VM 虛擬主機若是沒有 CD/DVD 光碟機的話,有可能會產生更新失敗的情況。發生失敗後,只能把 VM 虛擬主機關機,手動新增 CD/DVD 光碟機,然後手動再次安裝 VMware Tools。

選擇 Automatic Upgrade 的朋友,要注意的是有可能在 VMware Tools 版本升級之後,VM 虛擬主機會「自動重新啟動」,所以若不想升級 VMware Tools 版本後立即重新啟動,請記得在 Advanced Options 欄位加上「/s /v "/qn REBOOT=ReallySuppress"」參數,告訴系統雖然自動升級 VMware Tools 版本但不要馬上重新啟動 VM 虛擬主機。




透過 PowerCLI 統計 VMware Tools 版本

當 VM 虛擬主機數量不多時,採用上述手動的方式來檢查和處理即可,然而在本文實作環境中,單個 vSAN Cluster 內的 VM 虛擬主機數量就多達 365 台。所以,採用上述手動檢查和更新的方式便不切實際,透過下方自行撰寫的 PowerCLI 時,可以將指定的 vSAN Cluster 內,VM 虛擬主機的 VMware Tools 版本情況進行統計,列出「採用最新版本、需要更新版本、尚未安裝」這三種狀態的 VM 虛擬主機數量。


在下方撰寫的 PowerCLI 中,也提供把這些 VM 虛擬主機名稱、VMware Tools 版本、VMware Tools 狀態,收集匯整後匯出成為 vmtools.csv 檔案,方便快速得知哪些 VM 虛擬主機需要更新 VMware Tools 版本。


最後,同樣透過 PowerCLI,將指定的 vSAN Cluster 內,需要更新 VMware Tools 版本的 VM 虛擬主機過濾出來後,交給迴圈一次處理一台 VM 虛擬主機的 VMware Tools 版本更新作業,避免同時處理大量的 VM 虛擬主機的 VMware Tools 版本更新,造成 vCenter Server 和 vSAN Cluster 的工作負載過重。

值得注意的是,在本文的 PowerCLI 更新 VM 虛擬主機的 VMware Tools 版本更新後,會自動重新啟動 VM 虛擬主機。倘若,你不希望更新後重新啟動,請記得在 Update-Tools 那行的結尾加上「-NoReboot」參數即可。



Upgrade_VMware_Tools.ps1