练习 - 使用 Azure CLI 命令准备虚拟网络以进行对等互连

已完成

假设你的公司已准备好实现虚拟网络对等互连。 你希望连接部署在不同虚拟网络中的系统。 要对此计划进行测试,请首先创建虚拟网络,以支持公司已在 Azure 中运行的服务。 需要三个虚拟网络:

  • “销售”虚拟网络部署在欧洲北部。 销售系统使用此虚拟网络处理在客户参与后添加的数据。 销售团队想要访问营销数据。
  • “营销”虚拟网络部署在欧洲北部。 营销系统使用此虚拟网络。 营销团队的成员定期与销售团队沟通。 要将他们的数据与销售团队共享,则需要下载这些数据,因为销售系统和营销系统之间没有连接。
  • “研究”虚拟网络部署在欧洲西部。 研究系统使用此虚拟网络。 研究团队的成员与营销团队有逻辑工作关系,但他们不希望销售团队直接访问其数据。

A diagram of virtual networks you need to create.

将创建以下资源:

虚拟网络 区域 虚拟网络地址空间 子网 子网地址空间
SalesVNet 欧洲北部 10.1.0.0/16 应用 10.1.1.0/24
MarketingVNet 欧洲北部 10.2.0.0/16 应用 10.2.1.0/24
ResearchVNet 西欧 10.3.0.0/16 数据 10.3.1.0/24

创建虚拟网络

  1. 在 Cloud Shell 中运行以下命令,为“销售”系统创建虚拟网络和子网:

    az network vnet create \
        --resource-group "<rgn>[sandbox resource group name]</rgn>" \
        --name SalesVNet \
        --address-prefixes 10.1.0.0/16 \
        --subnet-name Apps \
        --subnet-prefixes 10.1.1.0/24 \
        --location northeurope
    
  2. 运行以下命令,为“营销”系统创建虚拟网络和子网:

    az network vnet create \
        --resource-group "<rgn>[sandbox resource group name]</rgn>" \
        --name MarketingVNet \
        --address-prefixes 10.2.0.0/16 \
        --subnet-name Apps \
        --subnet-prefixes 10.2.1.0/24 \
        --location northeurope
    
  3. 运行以下命令,为“研究”系统创建虚拟网络和子网:

    az network vnet create \
        --resource-group "<rgn>[sandbox resource group name]</rgn>" \
        --name ResearchVNet \
        --address-prefixes 10.3.0.0/16 \
        --subnet-name Data \
        --subnet-prefixes 10.3.1.0/24 \
        --location westeurope
    

确认虚拟网络配置

快速浏览一下已创建的内容。

  1. 在 Cloud Shell 中运行以下命令,以查看虚拟网络:

    az network vnet list --query "[?contains(provisioningState, 'Succeeded')]" --output table
    
  2. 应得到类似以下的输出:

    Location     Name           EnableDdosProtection    ProvisioningState    ResourceGuid                          ResourceGroup
    -----------  -------------  ----------------------  -------------------  ------------------------------------  ------------------------------------------
    westeurope   ResearchVNet   False                   Succeeded            9fe09fe0-d6cd-4043-aba8-b5e850a91251  learn-cb081b92-bc67-49cf-a965-1aeb40a2e25c
    northeurope  SalesVNet      False                   Succeeded            8f030706-cce4-4a7b-8da2-a9f738887ffd  learn-cb081b92-bc67-49cf-a965-1aeb40a2e25c
    northeurope  MarketingVNet  False                   Succeeded            ffbf8430-b0eb-4c3d-aa94-3b3156b90bed  learn-cb081b92-bc67-49cf-a965-1aeb40a2e25c
    

在每个虚拟网络中创建虚拟机

现在将在其中每个虚拟网络中部署一些 Ubuntu 虚拟机 (VM)。 这些 VM 将在每个虚拟网络中模拟服务。 在本模块的最后一个单元中,将使用这些 VM 来测试虚拟网络之间的连接。

  1. 在 Cloud Shell 中,运行下面的命令,将 <password> 替换为满足 Linux VM 要求的密码,以便在“SalesVNet”的“应用”子网中创建 Ubuntu VM。 请记下此密码供以后使用。

    az vm create \
        --resource-group "<rgn>[sandbox resource group name]</rgn>" \
        --no-wait \
        --name SalesVM \
        --location northeurope \
        --vnet-name SalesVNet \
        --subnet Apps \
        --image Ubuntu2204 \
        --admin-username azureuser \
        --admin-password <password>
    

    注意

    通过使用此命令中的 --no-wait 参数,可以在生成 VM 的过程中继续处理 Cloud Shell 中的工作。

  2. 运行下面的命令,将 <password> 替换为满足 Linux VM 要求的密码,以便在“MarketingVNet”的“应用”子网中创建另一个 Ubuntu VM。 请记下此密码供以后使用。 创建 VM 可能需要一到两分钟的时间。

    az vm create \
        --resource-group "<rgn>[sandbox resource group name]</rgn>" \
        --no-wait \
        --name MarketingVM \
        --location northeurope \
        --vnet-name MarketingVNet \
        --subnet Apps \
        --image Ubuntu2204 \
        --admin-username azureuser \
        --admin-password <password>
    
  3. 运行下面的命令,将 <password> 替换为满足 Linux VM 要求的密码,以便在“ResearchVNet”的“数据”子网中创建 Ubuntu VM。 请记下此密码供以后使用。

    az vm create \
        --resource-group "<rgn>[sandbox resource group name]</rgn>" \
        --no-wait \
        --name ResearchVM \
        --location westeurope \
        --vnet-name ResearchVNet \
        --subnet Data \
        --image Ubuntu2204 \
        --admin-username azureuser \
        --admin-password <password>
    

    VM 可能需要几分钟才能进入运行状态。

  4. 运行以下命令,确认 VM 处于运行状态。 Linux watch 命令配置为每五秒刷新一次。

    watch -d -n 5 "az vm list \
        --resource-group "<rgn>[sandbox resource group name]</rgn>" \
        --show-details \
        --query '[*].{Name:name, ProvisioningState:provisioningState, PowerState:powerState}' \
        --output table"
    

    “ProvisioningState”为“成功”,且“PowerState”为“VM 正在运行”表示 VM 部署成功。

  5. 在 VM 运行后,即可进行下一步。 按 Ctrl-c 停止命令,然后继续练习。