你当前正在访问 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 CLI 扩展的最新版本。

  • 本文需要 2.49.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 虚拟机

以下示例在 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 虚拟机的内存量(以 GB 为单位,最大 224 GB)。
VM_DISK_SIZE 虚拟机磁盘的大小(以 GB 为单位)。
VM_IMAGE 虚拟机映像的 URL。
ACR_URL Azure 容器注册表的 URL。
ACR_USERNAME Azure 容器注册表的用户名。
ACR_PASSWORD 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)。