大規模安裝適用於 VMware VM 的 Arc 代理程式
在本文中,您將了解如何大規模安裝適用於 VMware VM 的 Arc 代理程式,並使用 Azure 管理功能。
必要條件
在大規模安裝適用於 VMware VM 的 Arc 代理程式之前,請先確定下列事項:
資源橋接器必須處於執行中狀態。
vCenter 必須處於連線狀態。
使用者帳戶必須具有 Azure Arc VMware 系統管理員角色中所列的權限。
所有目標機器都:
- 已開啟電源,且資源橋接器與執行 VM 的主機具有網路連線能力。
- 正在執行支援的作業系統。
- VMware 工具會安裝在機器上。 如果未安裝 VMware 工具,入口網站中的啟用來賓管理作業會呈現灰色。
注意
如果未安裝 VMware 工具,您可以使用頻外方法安裝 Arc 代理程式。
- 能夠透過防火牆連線,以透過網際網路進行通訊,而且這些 URL 不會遭到封鎖。
注意
如果您使用 Linux VM,帳戶不得在 sudo 命令上提示登入。 若要覆寫提示,請從終端機執行
sudo visudo
,並在檔案結尾新增<username> ALL=(ALL) NOPASSWD:ALL
。 確保您取代<username>
。
如果您的 VM 範本已納入這些變更,則無須針對從該範本建立的 VM 執行此動作。
方法 A: 從入口網站大規模安裝 Arc 代理程式
如果機器共用相同的系統管理員認證,系統管理員可以從 Azure 入口網站針對多部機器安裝代理程式。
瀏覽至 Azure Arc 中心,然後選取 vCenter 資源。
選取所有機器,然後選擇 [在 Azure 中啟用] 選項。
選取 [啟用客體管理] 核取方塊,以在選取的機器上安裝 Arc 代理程式。
如果您想要透過 Proxy 連接 Arc 代理程式,請提供 Proxy 伺服器詳細資料。
如果您想要透過私人端點連線 Arc 代理程式,請遵循這些步驟以設定 Azure 私人連結。
注意
私人端點連線僅適用於 Arc 代理程式與 Azure 通訊。 針對 Arc 資源橋接器與 Azure 連線能力,不支援 Azure 私人連結。
提供機器的系統管理員使用者名稱和密碼。
注意
若為 Windows VM,帳戶必須屬於本機系統管理員群組;若為 Linux VM,它必須是根帳戶。
方法 B: 使用 AzCLI 命令安裝 Arc 代理程式
可使用下列 Azure CLI 命令安裝 Arc 代理程式。
az connectedvmware vm guest-agent enable --password
--resource-group
--username
--vm-name
[--https-proxy]
[--no-wait]
方法 C: 使用協助程式指令碼大規模安裝 Arc 代理程式
可以使用此處提供的 AzCLI 命令所建置的協助程式指令碼來自動化 Arc 代理程式安裝。 下載此協助程式指令碼以大規模啟用 VM 並安裝 Arc 代理程式。 在單一 ARM 部署中,協助程式指令碼可以在 200 部 VM 上啟用並安裝 Arc 代理程式。
指令碼的功能
建立記錄檔 (vmware-batch.log) 來追蹤其作業。
產生 Azure 入口網站連結清單至所有建立的部署
(all-deployments-<timestamp>.txt)
。建立 ARM 部署檔案
(vmw-dep-<timestamp>-<batch>.json)
。如果已啟用客體管理,可以在單一 ARM 部署中啟用最多 200 部 VM,否則可以啟用 400 部 VM。
支援以 cron 作業的形式執行,以啟用 vCenter 中的所有 VM。
允許對 Azure 進行服務主體驗證以進行自動化。
執行這個指令碼之前,請先安裝 az cli 和 connectedvmware
延伸模組。
必要條件
執行這個指令碼之前,請先安裝:
這裡的 Azure CLI。
Azure CLI 的
connectedvmware
延伸模組: 執行az extension add --name connectedvmware
以進行安裝。
使用方式
請將指令碼下載到本機電腦。
開啟 PowerShell 終端機,然後瀏覽至包含指令碼的目錄。
由於是未簽署的指令碼,請執行下列命令以允許指令碼執行 (如果在完成所有步驟前便關閉了工作階段,請在新的工作階段中重新執行此命令):
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
。使用必要參數執行指令碼。 例如:
.\arcvmware-batch-enablement.ps1 -VCenterId "<vCenterId>" -EnableGuestManagement -VMCountPerDeployment 3 -DryRun
。 以 vCenter 的 ARM 識別碼取代<vCenterId>
。
參數
VCenterId
: VM 所在 vCenter 的 ARM 識別碼。EnableGuestManagement
: 如果指定此切換,指令碼將會在 VM 上啟用來賓管理。VMCountPerDeployment
: 每個 ARM 部署啟用的 VM 數目。 如果已啟用來賓管理,最大值為 200,否則為 400。DryRun
: 如果指定此切換,指令碼只會建立 ARM 部署檔案。 否則,指令碼也會部署 ARM 部署。
以 Cron 作業身分執行
您可以使用 Windows 工作排程器,將此指令碼設定為以 cron 作業的形式執行。 以下是建立排程工作的範例指令碼:
$action = New-ScheduledTaskAction -Execute 'powershell.exe' -Argument '-File "C:\Path\To\vmware-batch-enable.ps1" -VCenterId "<vCenterId>" -EnableGuestManagement -VMCountPerDeployment 3 -DryRun'
$trigger = New-ScheduledTaskTrigger -Daily -At 3am
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName "EnableVMs"
以 vCenter 的 ARM 識別碼取代 <vCenterId>
。
若要取消註冊工作,請執行下列命令:
Unregister-ScheduledTask -TaskName "EnableVMs"
方法 D: 使用頻外方法大規模安裝 Arc 代理程式
Arc 代理程式可以直接安裝在機器上,而不需要依賴 VMware 工具或 API。 遵循頻外方法,請先將機器上線為已啟用 Arc 的伺服器資源,資源類型為 Microsoft.HybridCompute/machines。 之後,請執行 [連結至 vCenter] 作業,以將機器的 Kind 屬性更新為 VMware,以啟用虛擬生命週期作業。
將機器連線為已啟用 Arc 的伺服器資源: 使用已啟用 Arc 的伺服器指令碼安裝 Arc 代理程式。
您可以使用下列任何自動化方法來大規模安裝 Arc 代理程式:
將已啟用 Arc 的伺服器資源連結至 vCenter: 下列命令會將混合式計算機器的 Kind 屬性更新為 VMware。 將機器連結至 vCenter 會啟用機器上的虛擬生命週期作業和電源週期作業 (啟動、停止等)。
下列命令會掃描指定訂用帳戶中屬於 vCenter 之伺服器機器的所有 Arc,並將電腦與該 vCenter 連結。
az connectedvmware vm create-from-machines --subscription contoso-sub --vcenter-id /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/allhands-demo/providers/microsoft.connectedvmwarevsphere/VCenters/ContosovCentervcenters/contoso-vcenter
下列命令會掃描指定資源群組中屬於 vCenter 之伺服器機器的所有 Arc,並將電腦與該 vCenter 連結。
az connectedvmware vm create-from-machines --resource-group contoso-rg --vcenter-id /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/allhands-demo/providers/microsoft.connectedvmwarevsphere/VCenters/ContosovCentervcenters/contoso-vcenter
下列命令可用來將個別 Arc for Server 資源連結至 vCenter。
az connectedvmware vm create-from-machines --resource-group contoso-rg --name contoso-vm --vcenter-id /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/allhands-demo/providers/microsoft.connectedvmwarevsphere/VCenters/ContosovCentervcenters/contoso-vcenter