你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

通过模板在 Azure Stack Edge Pro GPU 设备上部署 VM

适用于:Yes for Pro GPU SKUAzure Stack Edge Pro - GPUYes for Pro 2 SKUAzure Stack Edge Pro 2Yes for Pro R SKUAzure Stack Edge Pro RYes for Mini R SKUAzure Stack Edge Mini R

本教程介绍如何使用模板在 Azure Stack Edge Pro 设备上创建和管理 VM。 这些模板是 JavaScript 对象表示法 (JSON) 文件,用于定义 VM 的基础结构和配置。 在这些模板中,指定要部署的资源以及这些资源的属性。

模板在不同的环境中非常灵活,因为它们可以在运行时从文件中获取参数作为输入。 对于模板,标准命名结构是 TemplateName.json;对于参数文件,标准命名结构是 TemplateName.parameters.json。 有关 ARM 模板的详细信息,请参阅什么是 Azure 资源管理器模板?

在本教程中,我们将使用预先编写的示例模板来创建资源。 无需编辑模板文件,只需修改 .parameters.json 文件即可自定义计算机部署。

VM 部署工作流

若要在多个设备上部署 Azure Stack Edge Pro VM,可以针对整组使用单个系统准备的 VHD,使用相同的模板进行部署,并仅对每个部署位置的模板参数进行较小的更改(这些更改可如此处一样手动进行,也可以编程方式进行。)

下面是使用模板的部署工作流的基本摘要信息:

  1. 配置先决条件 - 有三种先决条件:设备、客户端和 VM。

    1. 设备先决条件

      1. 在设备上连接到 Azure 资源管理器
      2. 通过本地 UI 启用计算。
    2. 客户端先决条件

      1. 在客户端上下载 VM 模板和关联文件。
      2. (可选)在客户端上配置 TLS 1.2。
      3. 在客户端上下载并安装 Microsoft Azure 存储资源管理器
    3. VM 先决条件

      1. 在设备位置创建一个资源组,该资源组将包含所有 VM 资源。
      2. 创建一个存储帐户,以上传用于创建 VM 映像的 VHD。
      3. 将本地存储帐户 URI 添加到访问设备的客户端上的 DNS 或 hosts 文件中。
      4. 在设备和访问设备的本地客户端上安装 blob 存储证书。 (可选)在存储资源管理器上安装 blob 存储证书。
      5. 创建 VHD 并将其上传到之前创建的存储帐户。
  2. 根据模板创建 VM

    1. 使用 CreateImage.parameters.json 参数文件和 CreateImage.json 部署模板创建 VM 映像。
    2. 使用 CreateVM.parameters.json 参数文件和 CreateVM.json 部署模板创建包含之前创建的资源的 VM。

设备先决条件

在 Azure Stack Edge Pro 设备上配置这些先决条件。

在 Azure Stack Edge 设备上部署 VM 之前,必须先将客户端配置为使用 Azure PowerShell 通过 Azure 资源管理器连接到设备。 有关详细说明,请参阅连接到 Azure Stack Edge 设备上的 Azure 资源管理器

确保可使用以下步骤从客户端访问设备。 能连接到 Azure 资源管理器即表示已完成此配置,现在是验证配置是否成功。

  1. 运行以下命令,验证 Azure 资源管理器通信是否正常运行:

    Add-AzEnvironment -Name <Environment Name> -ARMEndpoint "https://management.<appliance name>.<DNSDomain>"
    
  2. 若要调用本地设备 API 进行身份验证,请输入:

    login-AzAccount -EnvironmentName <Environment Name> -TenantId c0257de7-538f-415c-993a-1b87a031879d
    

    若要通过 Azure 资源管理器进行连接,请提供用户名 EdgeArmUser 和密码。

  3. 如果已为 Kubernetes 配置计算,则可以跳过此步骤。 否则,请执行以下操作,确保已为网络接口启用计算:

    a. 在本地用户界面上,转到“计算”设置。
    b. 选择要用于创建虚拟交换机的网络接口。 创建的 VM 将附加到与此端口及关联网络连接的虚拟交换机。 请确保选择与要用于此 VM 的 IP 地址相匹配的网络。

    Screenshot of the Compute configuration network settings pane.

    c. 在网络接口上的“启用计算”下,选择“是”。 Azure Stack Edge 将创建一个与该网络接口相对应的虚拟交换机,并对其进行管理。 请勿在此时输入 Kubernetes 的特定 IP。 启用计算可能需要花费几分钟时间。

    注意

    如果是创建 GPU VM,请选择已连接到 Internet 的网络接口。 这样将能在设备上安装 GPU 扩展。

客户端先决条件

在将用于访问 Azure Stack Edge Pro 设备的客户端上配置这些先决条件。

  1. 如果要使用存储资源管理器上传 VHD,请下载存储资源管理器。 或者,可以下载 AzCopy 来上传 VHD。 如果运行的是旧版 AzCopy,则可能需要在客户端计算机上配置 TLS 1.2。
  2. 将 VM 模板和参数文件下载到客户端计算机。 将其解压缩到将用作工作目录的目录中。

VM 先决条件

配置这些先决条件,以创建 VM 创建所需的资源。

创建资源组

使用 New-AzResourceGroup 创建 Azure 资源组。 资源组是在其中部署和管理 Azure 资源(例如存储帐户、磁盘和托管磁盘)的逻辑容器。

重要

所有资源都在与设备相同的位置创建,并且该位置设置为“DBELocal”

New-AzResourceGroup -Name <Resource group name> -Location DBELocal

下面是示例输出:

PS C:\WINDOWS\system32> New-AzResourceGroup -Name myaserg1 -Location DBELocal

ResourceGroupName : myaserg1
Location          : dbelocal
ProvisioningState : Succeeded
Tags              :
ResourceId        : /subscriptions/04a485ed-7a09-44ab-6671-66db7f111122/resourceGroups/myaserg1

PS C:\WINDOWS\system32> 

创建存储帐户

使用上一步骤中创建的资源组创建新存储帐户。 该帐户是本地存储帐户,将用于上传 VM 的虚拟磁盘映像

New-AzStorageAccount -Name <Storage account name> -ResourceGroupName <Resource group name> -Location DBELocal -SkuName Standard_LRS

注意

只有本地冗余存储(Standard_LRS 或 Premium_LRS)等本地存储帐户可以通过 Azure 资源管理器进行创建。 若要创建分层存储帐户,请参阅在 Azure Stack Edge Pro 上添加、连接存储帐户中的步骤。

下面是示例输出:

PS C:\WINDOWS\system32>New-AzStorageAccount -Name myasesa1 -ResourceGroupName myaserg1 -Location DBELocal -SkuName Standard_LRS

StorageAccountName ResourceGroupName PrimaryLocation SkuName Kind AccessTier CreationTime ProvisioningState EnableHttpsTrafficOnly
------------------ ----------------- --------------- ------- ---- ---------- ------------ ----------------- ------
myasesa1        myaserg1 DBELocal Standard_LRS Storage 4/18/2022 8:35:09 PM Succeeded False

PS C:\WINDOWS\system32>

若要获取存储帐户密钥,请运行 Get-AzStorageAccountKey 命令。 下面是示例输出:

PS C:\WINDOWS\system32> Get-AzStorageAccountKey

cmdlet Get-AzStorageAccountKey at command pipeline position 1
Supply values for the following parameters:
(Type !? for Help.)
ResourceGroupName: myaserg1
Name: myasesa1

KeyName Value                                                                                    Permissions
------- -----                                                                                    -----------
key1    7a707uIh43qADXvuhwqtw39mwq3M97r1BflhoF2yZ6W9FNkGOCblxb7nDSiYVGQprpkKk0Au2AjmgUXUT6yCog== Full
key2    2v1VQ6qH1CJ9bOjB15p4jg9Ejn7iazU95Qe8hAGE22MTL21Ac5skA6kZnE3nbe+rdiXiORBeVh9OpJcMOfoaZg== Full

PS C:\WINDOWS\system32>

将 blob URI 添加到 hosts 文件

确保已在要用于连接到 blob 存储的客户端的 hosts 文件中添加了 blob URI。 以管理员身份运行记事本,并在 C:\windows\system32\drivers\etc\hosts 中添加以下 blob URI 条目

<Device IP> <storage account name>.blob.<Device name>.<DNS domain>

在典型环境中,将配置 DNS,以便所有存储帐户都指向具有 *.blob.devicename.domainname.com 条目的 Azure Stack Edge Pro 设备。

(可选)安装证书

如果将使用 http 通过存储资源管理器连接,请跳过此步骤。 如果使用的是 https,则需要在存储资源管理器中安装相应的证书。 在此示例中,请安装 blob 终结点证书。 有关如何创建和上传证书的详细信息,请参阅管理证书

创建并上传 VHD

确保拥有可在后续步骤用于上传的虚拟磁盘映像。 请按照创建 VM 映像中的步骤操作。

将要使用的任何磁盘映像复制到前面步骤中创建的本地存储帐户中的页 blob 中。 可以使用诸如存储资源管理器AzCopy 之类的工具将 VHD 上传到在先前步骤中创建的存储帐户。

使用存储资源管理器进行上传

  1. 打开存储资源管理器。 转到“编辑”,并确保将应用程序设置为“以 Azure Stack API 为目标”

    Set target to Azure Stack APIs

  2. 以 PEM 格式安装客户端证书。 转到“编辑”>“SSL 证书”>“导入证书”。 指向客户端证书。

    Import blob storage endpoint certificate

    • 如果使用的是设备生成的证书,请下载 blob 存储终结点 .cer 证书并将其转换为 .pem 格式。 运行以下命令:

      PS C:\windows\system32> Certutil -encode 'C:\myasegpu1_Blob storage (1).cer' .\blobstoragecert.pem
      Input Length = 1380
      Output Length = 1954
      CertUtil: -encode command completed successfully.
      
    • 如果要使用自己的证书,请使用 .pem 格式的签名链根证书。

  3. 导入证书后,请重启存储资源管理器,以使更改生效。

    Restart Storage Explorer

  4. 在左窗格中,右键单击“存储帐户”,然后选择“连接到 Azure 存储”

    Connect to Azure Storage 1

  5. 选择“使用存储帐户名称和密钥”。 选择下一步

    Connect to Azure Storage 2

  6. 在“使用名称和密钥连接”中,提供“显示名称”、“存储帐户名称”、Azure 存储“帐户密钥”。 选择“其他存储域”,然后提供 <device name>.<DNS domain> 连接字符串。 如果未在存储资源管理器中安装证书,请选中“使用 HTTP”选项。 选择下一步

    Connect with Name and Key

  7. 查看“连接摘要”,然后选择“连接”

  8. 左窗格中会显示存储帐户。 选择并展开该存储帐户。 选择“blob 容器”,然后右键单击并选择“创建 blob 容器”。 为 blob 容器提供名称。

  9. 选择刚刚创建的容器,然后在右窗格中,选择“上传”>“上传文件”

    Upload VHD file 1

  10. 浏览并指向要在“选定文件”中上传的 VHD。 将“blob 类型”选择为“页 blob”,然后选择“上传”

    Upload VHD file 2

  11. 将 VHD 加载到 blob 容器后,选择 VHD,然后右键单击并选择“属性”

    Upload VHD file 3

  12. 复制并保存 URI,后续步骤中将会使用到它

    Copy URI

为 VM 创建映像

若要为 VM 创建映像,请编辑 CreateImage.parameters.json 参数文件,然后部署使用此参数文件的模板 CreateImage.json

编辑参数文件

文件 CreateImage.parameters.json 采用以下参数:

"parameters": {
    "osType": {
        "value": "<Operating system corresponding to the VHD you upload can be Windows or Linux>"
    },
    "imageName": {
        "value": "<Name for the VM image>"
    },
    "imageUri": {
        "value": "<Path to the VHD that you uploaded in the Storage account>"
    },
    "hyperVGeneration": { 
        "type": "string", 
        "value": "<Generation of the VM, V1 or V2>"
    }, 
}

编辑文件 CreateImage.parameters.json 以包括 Azure Stack Edge Pro 设备的以下值:

  1. 提供与要上传的 VHD 相对应的 OS 类型和 Hyper V 代系。 OS 类型可以是 Windows 或 Linux,VM 代系可以是 V1 或 V2。

    "parameters": {
            "osType": {
              "value": "Windows"
            }, 
            "hyperVGeneration": { 
              "value": "V2" 
        },
    }
    
  2. 将映像 URI 更改为在前面步骤中上传的映像的 URI:

    "imageUri": {
        "value": "https://myasegpusavm.blob.myasegpu1.wdshcsso.com/windows/WindowsServer2016Datacenter.vhd"
        },
    

    如果要在存储资源管理器中使用 http,请将 URI 更改为 http URI

  3. 提供唯一的映像名称。 此映像用于在后续步骤中创建 VM。

    下面是本文中使用的示例 json。

    {
        "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
        "contentVersion": "1.0.0.0",
      "parameters": {
        "osType": {
          "value": "Linux"
        },
        "hyperVGeneration": {
         "value": "V1"
        },
        "imageName": {
          "value": "myaselinuximg"
        },
        "imageUri": {
          "value": "https://sa2.blob.myasegpuvm.wdshcsso.com/con1/ubuntu18.04waagent.vhd"
        }        
      }
    }
    
  4. 保存参数文件。

部署模板

部署模板 CreateImage.json。 此模板部署将在后续步骤中用于创建 VM 的映像资源。

注意

部署模板时,如果遇到身份验证错误,则此会话的 Azure 凭据可能已过期。 重新运行 login-Az 命令以再次连接到 Azure Stack Edge Pro 设备上的 Azure 资源管理器。

  1. 运行以下命令:

    $templateFile = "Path to CreateImage.json"
    $templateParameterFile = "Path to CreateImage.parameters.json"
    $RGName = "<Name of your resource group>"
    New-AzResourceGroupDeployment `
        -ResourceGroupName $RGName `
        -TemplateFile $templateFile `
        -TemplateParameterFile $templateParameterFile `
        -Name "<Name for your deployment>"
    

    此命令部署一个映像资源。

  2. 若要查询该资源,请运行以下命令:

    Get-AzImage -ResourceGroupName <Resource Group Name> -name <Image Name>
    

    下面是示例输出:

    PS C:\WINDOWS\system32> $templateFile = "C:\12-09-2020\CreateImage\CreateImage.json"
    PS C:\WINDOWS\system32> $templateParameterFile = "C:\12-09-2020\CreateImage\CreateImage.parameters.json"
    PS C:\WINDOWS\system32> $RGName = "myaserg1"
    PS C:\WINDOWS\system32> New-AzResourceGroupDeployment -ResourceGroupName $RGName -TemplateFile $templateFile -TemplateParameterFile $templateParameterFile -Name "deployment1"
    
    DeploymentName          : deployment1
    ResourceGroupName       : myaserg1
    ProvisioningState       : Succeeded
    Timestamp               : 4/18/2022 9:24:26 PM
    Mode                    : Incremental
    TemplateLink            :
    Parameters              :
                          Name             Type                       Value
                          ===============  =========================  ==========
                          osType           String                     Linux
                          imageName        String                     myaselinuximg1
                          imageUri         String
                          https://myasepro2stor.blob.dm1176047910p.wdshcsso.com/myasepro2cont1/ubuntu13.vhd
    
    Outputs                 :
    DeploymentDebugLogLevel :
    
    PS C:\WINDOWS\system32>
    

创建 VM

编辑参数文件以创建 VM

若要创建 VM,请使用 CreateVM.parameters.json 参数文件。 该文件采用以下参数。

"vmName": {
            "value": "<Name for your VM>"
        },
        "adminUsername": {
            "value": "<Username to log into the VM>"
        },
        "Password": {
            "value": "<Password to log into the VM>"
        },
        "imageName": {
            "value": "<Name for your image>"
        },
        "vmSize": {
            "value": "<A supported size for your VM>"
        },
        "vnetName": {
            "value": "<Name for the virtual network, use ASEVNET>"
        },
        "subnetName": {
            "value": "<Name for the subnet, use ASEVNETsubNet>"
        },
        "vnetRG": {
            "value": "<Resource group for Vnet, use ASERG>"
        },
        "nicName": {
            "value": "<Name for the network interface>"
        },
        "privateIPAddress": {
            "value": "<Private IP address, enter a static IP in the subnet created earlier or leave empty to assign DHCP>"
        },
        "IPConfigName": {
            "value": "<Name for the ipconfig associated with the network interface>"
        }

为 Azure Stack Edge Pro 设备分配 CreateVM.parameters.json 中的相应参数。

  1. 提供唯一的名称、网络接口名称和 ipconfig 名称。

  2. 输入用户名、密码和支持的 VM 大小。

  3. 启用用于计算的网络接口后,会在该网络接口上自动创建一个虚拟交换机和一个虚拟网络。 可查询现有的虚拟网络,获取 Vnet 名称、子网名称和 Vnet 资源组名称。

    运行以下命令:

    Get-AzVirtualNetwork
    

    下面是示例输出:

    
    PS C:\WINDOWS\system32> Get-AzVirtualNetwork
    
    Name                   : ASEVNET
    ResourceGroupName      : ASERG
    Location               : dbelocal
    Id                     : /subscriptions/947b3cfd-7a1b-4a90-7cc5-e52caf221332/resourceGroups/ASERG/providers/Microsoft
                             .Network/virtualNetworks/ASEVNET
    Etag                   : W/"990b306d-18b6-41ea-a456-b275efe21105"
    ResourceGuid           : f8309d81-19e9-42fc-b4ed-d573f00e61ed
    ProvisioningState      : Succeeded
    Tags                   :
    AddressSpace           : {
                               "AddressPrefixes": [
                                 "10.57.48.0/21"
                               ]
                             }
    DhcpOptions            : null
    Subnets                : [
                               {
                                 "Name": "ASEVNETsubNet",
                                 "Etag": "W/\"990b306d-18b6-41ea-a456-b275efe21105\"",
                                 "Id": "/subscriptions/947b3cfd-7a1b-4a90-7cc5-e52caf221332/resourceGroups/ASERG/provider
                             s/Microsoft.Network/virtualNetworks/ASEVNET/subnets/ASEVNETsubNet",
                                 "AddressPrefix": "10.57.48.0/21",
                                 "IpConfigurations": [],
                                 "ResourceNavigationLinks": [],
                                 "ServiceEndpoints": [],
                                 "ProvisioningState": "Succeeded"
                               }
                             ]
    VirtualNetworkPeerings : []
    EnableDDoSProtection   : false
    EnableVmProtection     : false
    
    PS C:\WINDOWS\system32>
    

    对于 Vnet 名称,请使用 ASEVNET;对于子网名称,请使用 ASEVNETsubNet;对于 Vnet 资源组名称,请使用 ASERG。

  4. 现在,需要为上面定义的子网网络中的 VM 分配一个静态 IP 地址。 将 PrivateIPAddress 替换为此参数文件中的地址。 若要使虚拟机从本地 DCHP 服务器获取 IP 地址,请将 privateIPAddress 值留空。

    "privateIPAddress": {
                "value": "5.5.153.200"
            },
    
  5. 保存参数文件。

    下面是本文中使用的示例 json。

    {
      "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {
          "vmName": {
              "value": "vm1"
          },
          "adminUsername": {
              "value": "Administrator"
          },
          "Password": {
              "value": "Password1"
          },
        "imageName": {
          "value": "myaselinuximg1"
        },
        "vmSize": {
          "value": "Standard_NC4as_T4_v3"
        },
        "vnetName": {
          "value": "vswitch1"
        },
        "subnetName": {
          "value": "vswitch1subNet"
        },
        "vnetRG": {
          "value": "myaserg1"
        },
        "nicName": {
          "value": "nic1"
        },
        "privateIPAddress": {
          "value": ""
        },
        "IPConfigName": {
          "value": "ipconfig1"
        }
      }
    }       
    

部署模板以创建 VM

部署 VM 创建模板 CreateVM.json。 此模板根据现有的 VNet 创建网络接口,并根据部署的映像创建 VM。

  1. 运行以下命令:

    Command:
    
        $templateFile = "<Path to CreateVM.json>"
        $templateParameterFile = "<Path to CreateVM.parameters.json>"
        $RGName = "<Resource group name>"
    
        New-AzResourceGroupDeployment `
            -ResourceGroupName $RGName `
            -TemplateFile $templateFile `
            -TemplateParameterFile $templateParameterFile `
            -Name "<DeploymentName>"
    

    创建 VM 将需要 15-20 分钟。 下面是成功创建 VM 的示例输出:

    PS C:\WINDOWS\system32> $templateFile = "C:\12-09-2020\CreateVM\CreateVM.json"
    PS C:\WINDOWS\system32> $templateParameterFile = "C:\12-09-2020\CreateVM\CreateVM.parameters.json"
    PS C:\WINDOWS\system32> $RGName = "myaserg1"
    PS C:\WINDOWS\system32> New-AzureRmResourceGroupDeployment -ResourceGroupName $RGName -TemplateFile $templateFile -TemplateParameterFile $templateParameterFile -Name "Deployment2"
    
    DeploymentName          : Deployment2
    ResourceGroupName       : myaserg1
    ProvisioningState       : Succeeded
    Timestamp               : 04/18/2022 1:51:28 PM
    Mode                    : Incremental
    TemplateLink            :
    Parameters              :
                          Name             Type                       Value
                          ===============  =========================  ==========
                          vmName           String                     vm1
                          adminUsername    String                     Administrator
                          password         String                     Password1
                          imageName        String                     myaselinuximg
                          vmSize           String                     Standard_NC4as_T4_v3
                          vnetName         String                     vswitch1
                          vnetRG           String                     myaserg1
                          subnetName       String                     vswitch1subNet
                          nicName          String                     nic1
                          ipConfigName     String                     ipconfig1
                          privateIPAddress  String
    
    Outputs                 :
    DeploymentDebugLogLevel :
    
    PS C:\WINDOWS\system32
    

    此外,还可以使用 –AsJob 参数异步运行 New-AzResourceGroupDeployment 命令。 下面是 cmdlet 在后台运行时的示例输出。 然后,可以查询使用 Get-Job cmdlet 创建的作业的状态。

    PS C:\WINDOWS\system32> New-AzResourceGroupDeployment `
     >>     -ResourceGroupName $RGName `
     >>     -TemplateFile $templateFile `
     >>     -TemplateParameterFile $templateParameterFile `
     >>     -Name "Deployment4" `
     >>     -AsJob
    
     Id     Name            PSJobTypeName   State         HasMoreData     Location             Command
     --     ----            -------------   -----         -----------     --------             -------
     4      Long Running... AzureLongRun... Running       True            localhost            New-AzureRmResourceGro...
    
     PS C:\WINDOWS\system32> Get-Job -Id 4
    
     Id     Name            PSJobTypeName   State         HasMoreData     Location             Command
     --     ----            -------------   -----         -----------     --------             -------
    
  2. 检查 VM 是否已成功预配。 运行以下命令:

    Get-AzVm

连接到 VM

根据所创建的是 Windows 还是 Linux VM,连接步骤可能会有所不同。

连接到 Windows VM

请按照以下步骤连接到 Windows VM。

通过在 VM 创建期间传递的 IP,使用远程桌面协议 (RDP) 连接到 Windows VM。

  1. 在客户端上,打开 RDP。

  2. 转到“开始”,然后输入 mstsc

  3. 在“远程桌面连接”窗格上,输入 VM 的 IP 地址以及你在 VM 模板参数文件中使用的访问凭据。 然后选择“连接” 。

    Screenshot of the Remote Desktop Connection pane for connecting via RDP to your Windows VM.

    注意

    可能需要批准连接到某个不受信任的计算机。

你现在已经登录到在设备上运行的 VM 了。

连接到 Linux VM

请按照以下步骤连接到 Linux VM。

使用 VM 创建期间传递的专用 IP 连接到 VM。

  1. 打开 SSH 会话以连接 IP 地址。

    ssh -l <username> <ip address>
    
  2. 根据提示,提供在创建 VM 时使用的密码。

    如需提供 SSH 密钥,请使用此命令。

    ssh -i c:/users/Administrator/.ssh/id_rsa Administrator@5.5.41.236

    下面是连接到 VM 时的输出示例:

    PS C:\WINDOWS\system32> ssh -l myazuser "10.126.76.60"
    The authenticity of host '10.126.76.60 (10.126.76.60)' can't be established.
    ECDSA key fingerprint is SHA256:V649Zbo58zAYMKreeP7M6w7Na0Yf9QPg4SM7JZVV0E4.
    Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
    Warning: Permanently added '10.126.76.60' (ECDSA) to the list of known hosts.
    myazuser@10.126.76.60's password:
    Welcome to Ubuntu 18.04.2 LTS (GNU/Linux 4.18.0-1013-azure x86_64)
    
     * Documentation:  https://help.ubuntu.com
     * Management:     https://landscape.canonical.com
     * Support:        https://ubuntu.com/advantage
    
     System information disabled due to load higher than 1.0
    
      Get cloud support with Ubuntu Advantage Cloud Guest:
        http://www.ubuntu.com/business/services/cloud
    
    284 packages can be updated.
    192 updates are security updates. 
    
    The programs included with the Ubuntu system are free software;
    the exact distribution terms for each program are described in the
    individual files in /usr/share/doc/*/copyright.
    
    Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
    applicable law.
    
    To run a command as administrator (user "root"), use "sudo <command>".
    See "man sudo_root" for details.
    
    myazuser@myazvmfriendlyname:~$ client_loop: send disconnect: Connection reset
    PS C:\WINDOWS\system32>
    

后续步骤

Azure 资源管理器 cmdlets