- 使用 Azure CLI 部署 Azure Nexus 虛擬機器
本快速入門指南旨在協助您開始使用 Nexus 虛擬機器來託管虛擬網路功能 (VNF)。 透過遵循本指南中概述的步驟,您可以快速輕鬆地建立符合您特定需求和要求的自訂 Nexus 虛擬機器。 無論您是 Nexus 網路的初學者還是專家,本指南都能為您提供協助。 您將瞭解建立和自訂 Nexus 虛擬機器以裝載虛擬網路功能所需瞭解的所有資訊。
開始之前
如果您沒有 Azure 帳戶,請在開始之前建立 免費帳戶 。
使用 Azure Cloud Shell 中的 Bash 環境。 如需詳細資訊,請參閱開始使用 Azure Cloud Shell。
若要在本地執行 CLI 參考命令,請安裝 Azure CLI。 若您在 Windows 或 macOS 上執行,請考慮在 Docker 容器中執行 Azure CLI。 如需詳細資訊,請參閱 如何在 Docker 容器中執行 Azure CLI。
如果您使用的是本機安裝,請使用 az login 命令,透過 Azure CLI 來登入。 請遵循您終端機上顯示的步驟,完成驗證程序。 如需其他登入選項,請參閱 使用 Azure CLI 向 Azure 進行驗證。
出現提示時,請在第一次使用時安裝 Azure CLI 延伸模組。 如需擴充功能的詳細資訊,請參閱 使用和管理 Azure CLI 的擴充功能。
執行 az version 以尋找已安裝的版本和相依程式庫。 若要升級至最新版本,請執行 az upgrade。
安裝 必要 Azure CLI 延伸模組的最新版本。
如果您有多個 Azure 訂用帳戶,請使用命令
az account選取適當的訂用帳戶識別碼,以計費資源。在繼續建立虛擬機器之前,請確定是根據 指示建立要使用的容器映像檔。
使用
az group create命令建立資源群組。 Azure 資源群組是部署及管理 Azure 資源所在的邏輯群組。 建立資源群組時,系統會提示您指定位置。 此位置是資源群組中繼資料的儲存位置,如果未在資源建立期間指定另一個區域,此位置也會是您在 Azure 中執行資源的位置。 下列範例會在 eastus 位置建立名為 myResourceGroup 的資源群組。az group create --name myResourceGroup --location eastus下列輸出範例類似於成功建立資源群組:
{ "id": "/subscriptions/<guid>/resourceGroups/myResourceGroup", "location": "eastus", "managedBy": null, "name": "myResourceGroup", "properties": { "provisioningState": "Succeeded" }, "tags": null }若要部署 Bicep 檔案或 ARM 範本,您需要對要部署的資源具備寫入存取權,並且需要存取 Microsoft.Resources/deployments 資源類型上所有作業的權限。 例如,若要部署叢集,您需要 Microsoft.NetworkCloud/virtualMachines/write 和 Microsoft.Resources/deployments/* 權限。 如需角色與權限的清單,請參閱 Azure 內建角色。
您需要
custom locationAzure 操作員連接點叢集的資源識別碼。您需要根據特定的工作負載需求建立 各種網絡 ,並且為您的工作負載提供適當的 IP 位址至關重要。 為確保順利實施,建議諮詢相關支援團隊尋求協助。
- 完成部署 Nexus 虛擬機器的 必要條件 。
建立 Nexus 虛擬機器
下列範例會在 eastus 位置的資源群組 myResourceGroup 中建立名為 myNexusVirtualMachine 的虛擬機器。
在執行命令之前,您需要設定數個變數來定義虛擬機器的組態。 以下是您需要設定的變數,以及一些可用於某些變數的預設值:
| Variable | Description |
|---|---|
| 位置 | 您要建立虛擬機器的 Azure 區域。 |
| 資源群組 | 您要建立虛擬機器的 Azure 資源群組名稱。 |
| 訂閱 | Azure 訂用帳戶的識別碼。 |
| 自定義位置 | 此引數指定 Nexus 執行個體的自訂位置。 |
| CSN_ARM_ID | 虛擬機器連線之雲端服務網路的 ARM 資源識別碼。 |
| L3_NETWORK_ID | 虛擬機器連線之 L3 網路的 ARM 資源識別碼。 |
| NETWORK_INTERFACE_NAME | 要指派的 L3 網路介面名稱。 |
| ADMIN_USERNAME | 虛擬機器管理員的使用者名稱。 |
| SSH_PUBLIC_KEY | 用於與虛擬機器安全通訊的 SSH 公開金鑰。 |
| CPU 核心數 | 虛擬機器的 CPU 核心數目 (偶數,最多 46 個 vCPU) |
| MEMORY_SIZE | 虛擬機器的記憶體數量 (以 GiB 為單位,最多 224 GiB)。 |
| 虛擬機器_磁碟大小 | 虛擬機器磁碟的大小 (以 GiB 為單位)。 |
| VM_IMAGE | 虛擬機器映像的 URL。 |
| ACR_URL | Azure Container Registry (ACR) 的 URL。 |
| ACR_USERNAME | Azure Container Registry 的使用者名稱。 |
| ACR_PASSWORD | Azure Container Registry 的密碼。 |
| UAMI_ID | 使用者指派的受控識別的資源識別碼 (如果使用使用者指派的受控識別)。 |
警告
使用者資料不會加密,而且 VM 上的任何進程都可以查詢此資料。 您不應該在使用者資料中儲存機密資訊。 如需詳細資訊,請參閱 Azure 資料安全性和加密最佳做法。
定義變數之後,您可以執行 Azure CLI 命令來建立虛擬機器。
若要提供更詳細的輸出以進行疑難排解,請在結尾新增 --debug 旗標。
使用下列一組命令,並將範例值取代為您偏好的值。 您也可以使用部分變數的預設值,如下列範例所示:
# Azure parameters
RESOURCE_GROUP="myResourceGroup"
SUBSCRIPTION="<Azure subscription ID>"
CUSTOM_LOCATION="/subscriptions/<subscription_id>/resourceGroups/<managed_resource_group>/providers/microsoft.extendedlocation/customlocations/<custom-location-name>"
LOCATION="$(az group show --name $RESOURCE_GROUP --query location --subscription $SUBSCRIPTION -o tsv)"
# VM parameters
VM_NAME="myNexusVirtualMachine"
# VM credentials
ADMIN_USERNAME="azureuser"
SSH_PUBLIC_KEY="$(cat ~/.ssh/id_rsa.pub)"
# Network parameters
CSN_ARM_ID="/subscriptions/<subscription_id>/resourceGroups/<resource_group>/providers/Microsoft.NetworkCloud/cloudServicesNetworks/<csn-name>"
L3_NETWORK_ID="/subscriptions/<subscription_id>/resourceGroups/<resource_group>/providers/Microsoft.NetworkCloud/l3Networks/<l3Network-name>"
NETWORK_INTERFACE_NAME="mgmt0"
# VM Size parameters
CPU_CORES=4
MEMORY_SIZE=12
VM_DISK_SIZE="64"
# Virtual Machine Image parameters
VM_IMAGE="<VM image, example: myacr.azurecr.io/ubuntu:20.04>"
ACR_URL="<Azure Container Registry URL, example: myacr.azurecr.io>"
ACR_USERNAME="<Azure Container Registry username>"
ACR_PASSWORD="<Azure Container Registry password>"
這很重要
在執行這些命令之前,您必須先將 CUSTOM_LOCATION、CSN_ARM_ID、L3_NETWORK_ID 和 ACR 參數的預留位置取代為實際值。
定義這些變數之後,您可以執行下列 Azure CLI 命令來建立虛擬機器。
az networkcloud virtualmachine create \
--name "$VM_NAME" \
--resource-group "$RESOURCE_GROUP" \
--subscription "$SUBSCRIPTION" \
--extended-location name="$CUSTOM_LOCATION" type="CustomLocation" \
--location "$LOCATION" \
--admin-username "$ADMIN_USERNAME" \
--csn "attached-network-id=$CSN_ARM_ID" \
--cpu-cores $CPU_CORES \
--memory-size $MEMORY_SIZE \
--network-attachments '[{"attachedNetworkId":"'$L3_NETWORK_ID'","ipAllocationMethod":"Dynamic","defaultGateway":"True","networkAttachmentName":"'$NETWORK_INTERFACE_NAME'"}]'\
--storage-profile create-option="Ephemeral" delete-option="Delete" disk-size="$VM_DISK_SIZE" \
--vm-image "$VM_IMAGE" \
--ssh-key-values "$SSH_PUBLIC_KEY" \
--vm-image-repository-credentials registry-url="$ACR_URL" username="$ACR_USERNAME" password="$ACR_PASSWORD"
具有受控識別的虛擬機器
使用系統指派或使用者指派的受控識別建立虛擬機器。
若要將受控識別新增到 VM,API 版本必須是 2025-07-01-preview 或更新的版本。
請確定 networkcloud 延伸模組 已安裝支援所需 API 版本的版本。
您可以在 GitHub 上的擴充功能發行歷程記錄中找到networkcloud支援的版本。
這很重要
如果您在建立 VM 時未指定受控識別,則無法在布建之後更新 VM 來啟用受控識別支援。
若要啟用虛擬機器的系統指派受控識別,請務必包含 --mi-system-assigned 旗標 (或別名 --system-assigned)。
使用 Azure CLI,透過系統指派的受控身分識別(SAMI)建立虛擬機器:
az networkcloud virtualmachine create \
--name "$VM_NAME" \
--resource-group "$RESOURCE_GROUP" \
--subscription "$SUBSCRIPTION" \
--extended-location name="$CUSTOM_LOCATION" type="CustomLocation" \
--location "$LOCATION" \
--admin-username "$ADMIN_USERNAME" \
--csn "attached-network-id=$CSN_ARM_ID" \
--cpu-cores $CPU_CORES \
--memory-size $MEMORY_SIZE \
--network-attachments '[{"attachedNetworkId":"'$L3_NETWORK_ID'","ipAllocationMethod":"Dynamic","defaultGateway":"True","networkAttachmentName":"'$NETWORK_INTERFACE_NAME'"}]'\
--storage-profile create-option="Ephemeral" delete-option="Delete" disk-size="$VM_DISK_SIZE" \
--vm-image "$VM_IMAGE" \
--ssh-key-values "$SSH_PUBLIC_KEY" \
--vm-image-repository-credentials registry-url="$ACR_URL" username="$ACR_USERNAME" password="$ACR_PASSWORD" \
--mi-system-assigned
若要使用使用者分配的受控身分,您可以使用 --mi-user-assigned 參數(或使用別名 --user-assigned)來指定使用者分配的受控身分識別碼。
請務必將變數與您想要使用的使用者指派受控識別的資源識別碼一起包含在內 UAMI_ID 。
export UAMI_ID=$(az identity show --name "$UAMI_NAME" --resource-group "$RESOURCE_GROUP" --query "id" -o tsv)
使用 User-Assigned 受控識別 (UAMI) 搭配 Azure CLI 建立虛擬機器:
az networkcloud virtualmachine create \
--name "$VM_NAME" \
--resource-group "$RESOURCE_GROUP" \
--subscription "$SUBSCRIPTION" \
--extended-location name="$CUSTOM_LOCATION" type="CustomLocation" \
--location "$LOCATION" \
--admin-username "$ADMIN_USERNAME" \
--csn "attached-network-id=$CSN_ARM_ID" \
--cpu-cores $CPU_CORES \
--memory-size $MEMORY_SIZE \
--network-attachments '[{"attachedNetworkId":"'$L3_NETWORK_ID'","ipAllocationMethod":"Dynamic","defaultGateway":"True","networkAttachmentName":"'$NETWORK_INTERFACE_NAME'"}]'\
--storage-profile create-option="Ephemeral" delete-option="Delete" disk-size="$VM_DISK_SIZE" \
--vm-image "$VM_IMAGE" \
--ssh-key-values "$SSH_PUBLIC_KEY" \
--vm-image-repository-credentials registry-url="$ACR_URL" username="$ACR_USERNAME" password="$ACR_PASSWORD" \
--mi-user-assigned "$UAMI_ID"
幾分鐘後,命令完成並傳回虛擬機器的相關資訊。 虛擬機器現在可供使用。
檢閱已部署的資源
部署完成之後,您可以使用 CLI 或 Azure 入口網站來檢視資源。
若要檢視資源群組中myNexusVirtualMachine叢集myResourceGroup的詳細資料,請執行下列動作
az networkcloud virtualmachine show --name myNexusVirtualMachine --resource-group myResourceGroup
清理資源
不再需要時,請刪除資源群組。 資源群組及資源群組中的所有資源都會被刪除。
使用 az group delete 命令來移除資源群組、虛擬機器,以及操作員連接點網路資源以外的所有相關資源。
az group delete --name myResourceGroup --yes --no-wait
後續步驟
Nexus虛擬機創建成功! 您現在可以使用虛擬機器來託管虛擬網路功能 (VNF)。