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

已完成

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

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

需要创建的虚拟网络关系图。

将创建以下资源:

虚拟网络 区域 虚拟网络地址空间 子网 子网地址空间
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 --output table
    
  2. 应看到如下输出:

    Name           ResourceGroup                              Location    NumSubnets   Prefixes    DnsServers   DDOSProtection   VMProtection
    -------------- ------------------------------------------ ----------- ------------ ----------- ------------ ---------------- --------------
    MarketingVNet <rgn>[sandbox resource group name]</rgn> northeurope 1            10.2.0.0/16              False            False
    SalesVNet     <rgn>[sandbox resource group name]</rgn> northeurope 1            10.1.0.0/16              False            False
    ResearchVNet  <rgn>[sandbox resource group name]</rgn> westeurope  1            10.3.0.0/16              False            False
    

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

现在将在其中每个虚拟网络中部署一些 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 UbuntuLTS \
        --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 UbuntuLTS \
        --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 UbuntuLTS \
        --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 停止命令,然后继续练习。