你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
快速入门:使用 Azure CLI 创建 Azure Operator Nexus 虚拟机
- 使用 Azure CLI 部署 Azure Nexus 虚拟机
本快速入门指南旨在帮助你开始使用 Nexus 虚拟机托管虚拟网络功能 (VNF)。 按照本指南中所述的步骤操作,可以快速轻松地创建满足特定需求和要求的自定义 Nexus 虚拟机。 无论你是 Nexus 网络的初学者还是专家,本指南都可以帮助你。 你将了解创建和自定义用于托管虚拟网络功能的 Nexus 虚拟机所需的全部知识。
开始之前
如果没有 Azure 订阅,请在开始之前创建一个 Azure 免费帐户。
在 Azure Cloud Shell 中使用 Bash 环境。 有关详细信息,请参阅 Azure Cloud Shell 中的 Bash 快速入门。
如需在本地运行 CLI 参考命令,请安装 Azure CLI。 如果在 Windows 或 macOS 上运行,请考虑在 Docker 容器中运行 Azure CLI。 有关详细信息,请参阅如何在 Docker 容器中运行 Azure CLI。
如果使用的是本地安装,请使用 az login 命令登录 Azure CLI。 若要完成身份验证过程,请遵循终端中显示的步骤。 有关其他登录选项,请参阅使用 Azure CLI 登录。
出现提示时,请在首次使用时安装 Azure CLI 扩展。 有关扩展详细信息,请参阅使用 Azure CLI 的扩展。
运行 az version 以查找安装的版本和依赖库。 若要升级到最新版本,请运行 az upgrade。
安装必需的 Azure CLI 扩展的最新版本。
本文需要 2.61.0 或更高版本的 Azure CLI。 如果使用 Azure Cloud Shell,则最新版本已安装。
如果你有多个 Azure 订阅,请使用
az account
命令选择应在其中计收资源费用的相应订阅 ID。在继续创建虚拟机之前,请确保根据说明创建要使用的容器映像。
使用
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 内置角色。
需要 Azure Operator Nexus 群集的
custom location
资源 ID。需要根据特定的工作负载要求创建各种网络,并且必须具有适用于工作负载的相应 IP 地址。 为确保顺利实施,建议咨询相关支持团队以获取帮助。
- 完成部署 Nexus 虚拟机的先决条件。
创建 Nexus 虚拟机
以下示例在 eastus 位置的资源组 myResourceGroup 中创建名为 myNexusVirtualMachine 的虚拟机。
在运行命令之前,需要设置多个变量来定义虚拟机的配置。 下面是需要设置的变量,以及可用于某些变量的一些默认值:
变量 | 说明 |
---|---|
LOCATION | 要在其中创建虚拟机的 Azure 区域。 |
RESOURCE_GROUP | 要在其中创建虚拟机的 Azure 资源组的名称。 |
订阅 | Azure 订阅的 ID。 |
CUSTOM_LOCATION | 此参数指定 Nexus 实例的自定义位置。 |
CSN_ARM_ID | 虚拟机将要连接的云服务网络的 ARM ID。 |
L3_NETWORK_ID | 虚拟机将要连接的 L3 网络的 ARM ID。 |
NETWORK_INTERFACE_NAME | 要分配的 L3 网络接口的名称。 |
ADMIN_USERNAME | 虚拟机管理员的用户名。 |
SSH_PUBLIC_KEY | 用于与虚拟机进行安全通信的 SSH 公钥。 |
CPU_CORES | 虚拟机的 CPU 核心数(偶数,最多 46 个 vCPU) |
MEMORY_SIZE | 虚拟机的内存量(以 GiB 为单位,最大 224 GiB)。 |
VM_DISK_SIZE | 虚拟机磁盘的大小(以 GiB 为单位)。 |
VM_IMAGE | 虚拟机映像的 URL。 |
ACR_URL | Azure 容器注册表的 URL。 |
ACR_USERNAME | Azure 容器注册表的用户名。 |
ACR_PASSWORD | Azure 容器注册表的密码。 |
警告
用户数据不会加密,VM 上的任何进程均可查询这些数据。 不应在用户数据中存储机密信息。 有关详细信息,请参阅 Azure 数据安全和加密最佳做法。
定义这些变量后,可以运行 Azure CLI 命令来创建虚拟机。 在末尾添加 --debug
标志来提供更详细的输出,以便进行故障排除。
若要定义这些变量,请使用以下 set 命令,并将示例值替换为你的首选值。 还可以对某些变量使用默认值,如以下示例所示:
# 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"
几分钟后,该命令将完成并返回有关虚拟机的信息。 你已创建虚拟机。 现已准备好使用它们。
查看已部署的资源
部署完成后,可以使用 CLI 或 Azure 门户查看资源。
若要查看 myResourceGroup
资源组中 myNexusVirtualMachine
群集的详细信息,请执行以下命令
az networkcloud virtualmachine show --name myNexusVirtualMachine --resource-group myResourceGroup
清理资源
不再需要资源组时,可将其删除。 资源组和资源组中的所有资源都会被删除。
使用 az group delete 命令可删除资源组、虚拟机以及除 Operator Nexus 网络资源外的所有相关资源。
az group delete --name myResourceGroup --yes --no-wait
后续步骤
已成功创建 Nexus 虚拟机。 现在,可以使用虚拟机托管虚拟网络功能 (VNF)。