Implantar VMs no dispositivo de GPU Azure Stack Edge Pro usando modelos
APLICA-SE A: Azure Stack Edge Pro - GPUAzure Stack Edge Pro 2Azure Stack Edge Pro RAzure Stack Edge Mini R
Este tutorial descreve como criar e gerenciar uma VM no dispositivo Azure Stack Edge Pro usando modelos. Esses modelos são arquivos JSON (JavaScript Object Notation) que definem a infraestrutura e a configuração para a VM. Nesses modelos, você especificará os recursos a serem implantados e as propriedades deles.
Os modelos são flexíveis em ambientes diferentes, pois podem usar parâmetros como entrada no runtime de um arquivo. A estrutura de nomenclatura padrão é TemplateName.json
para o modelo e TemplateName.parameters.json
para o arquivo de parâmetros. Para obter mais informações sobre modelos do ARM, acesse O que são modelos do Azure Resource Manager?.
Neste tutorial, usaremos modelos de exemplo pré-gravados para a criação de recursos. Você não precisará editar o arquivo de modelo e poderá modificar apenas os arquivos .parameters.json
para personalizar a implantação no computador.
Fluxo de trabalho de implantação da VM
Para implantar VMs no Azure Stack Edge Pro em vários dispositivos, você pode usar um único sysprep VHD para toda a frota, o mesmo modelo para implantação e apenas fazer pequenas alterações nos parâmetros desse modelo para cada local de implantação (essas alterações podem ser feitas manualmente, como estamos fazendo aqui, ou de forma programática.)
O resumo de alto nível do fluxo de trabalho de implantação com modelos é o seguinte:
Configurar os pré-requisitos – há três tipos de pré-requisitos: dispositivo, cliente e para a VM.
Pré-requisitos do dispositivo
- Conecte-se ao Azure Resource Manager no dispositivo.
- Habilite a computação pela IU local.
Pré-requisitos de cliente
- Baixe os modelos de VM e os arquivos associados no cliente.
- Opcionalmente, configure o TLS 1.2 no cliente.
- Baixe e instale o Gerenciador de Armazenamento do Microsoft Azure no cliente.
Pré-requisitos da VM
- Crie um grupo de recursos no local do dispositivo que conterá todos os recursos da VM.
- Crie uma conta de armazenamento para carregar o VHD usado para criar a imagem de VM.
- Adicione o URI da conta de armazenamento local ao arquivo de DNS ou hosts no cliente que está acessando seu dispositivo.
- Instale o certificado de armazenamento de blob no dispositivo e no cliente local que está acessando seu dispositivo. Opcionalmente, instale o certificado de armazenamento de blob no Gerenciador de Armazenamento.
- Crie e carregue um VHD para a conta de armazenamento criada anteriormente.
Criar VM usando modelos
- Crie uma imagem de VM usando o arquivo de parâmetros
CreateImage.parameters.json
e o modelo de implantaçãoCreateImage.json
. - Crie uma VM com recursos criados anteriormente usando o arquivo de parâmetros
CreateVM.parameters.json
e modelo de implantaçãoCreateVM.json
.
- Crie uma imagem de VM usando o arquivo de parâmetros
Pré-requisitos do dispositivo
Configure esses pré-requisitos no dispositivo Azure Stack Edge Pro.
Antes de implantar VMs no dispositivo Azure Stack Edge, é necessário configurar seu cliente para se conectar ao dispositivo via Azure Resource Manager sobre o Azure PowerShell. Para obter instruções detalhadas, consulte Conectar-se a Azure Resource Manager no dispositivo Azure Stack Edge.
Certifique-se de que possa usar as etapas a seguir para acessar o dispositivo a partir do cliente. Você já fez essa configuração quando se conectou ao Azure Resource Manager e, agora, está verificando se a configuração foi bem-sucedida.
Verifique se a comunicação do Azure Resource Manager está funcionando executando o seguinte comando:
Para chamar as APIs do dispositivo local para autenticar, insira:
Se tiver configurado a computação para Kubernetes, você poderá ignorar essa etapa. Caso contrário, certifique-se de que tenha habilitado uma interface de rede para computação fazendo o seguinte:
a. Na interface do usuário local, vá para configurações de Computação.
b. Selecione o adaptador de rede que será usado para criar um comutador virtual. As VMs que você criar serão anexadas a um comutador virtual anexado a essa porta e à rede associada. Certifique-se de escolher uma rede que corresponda ao endereço IP que você usará para a VM.c. Em Habilitar para computação no adaptador de rede, selecione Sim. O Azure Stack Edge criará e gerenciará um comutador virtual que corresponde a esse adaptador de rede. Não insira IPs específicos para Kubernetes no momento. A habilitação da computação pode levar vários minutos.
Observação
Se estiver criando VMs de GPU, selecione um adaptador de rede que esteja conectado à Internet. Isso permite que você instale uma extensão de GPU em seu dispositivo.
Pré-requisitos do cliente
Configure esses pré-requisitos no cliente que será usado para acessar o dispositivo Azure Stack Edge Pro.
- Baixe o Gerenciador de Armazenamento se estiver usando-o para carregar um VHD. Como alternativa, você pode baixar o AzCopy para carregar um VHD. Talvez seja necessário configurar o TLS 1.2 no computador cliente se estiver executando versões mais antigas do AzCopy.
- Baixe os modelos de VM e os arquivos de parâmetros no computador cliente. Descompacte-o em um diretório que você usará como um diretório de trabalho.
Pré-requisitos da VM
Configure esses pré-requisitos para criar os recursos necessários para a criação da VM.
Criar um grupo de recursos
Crie um grupo de recursos do Azure com New-AzResourceGroup. Um grupo de recursos é um contêiner lógico no qual os recursos do Azure, como conta de armazenamento, disco, disco gerenciado, são implantados e gerenciados.
Importante
Todos os recursos são criados no mesmo local do dispositivo e o local é definido como DBELocal.
New-AzResourceGroup -Name <Resource group name> -Location DBELocal
Aqui está um exemplo de saída:
PS C:\WINDOWS\system32> New-AzResourceGroup -Name myaserg1 -Location DBELocal
ResourceGroupName : myaserg1
Location : dbelocal
ProvisioningState : Succeeded
Tags :
ResourceId : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myaserg1
PS C:\WINDOWS\system32>
Criar uma conta de armazenamento
Crie uma nova conta de armazenamento usando o grupo de recursos criado na etapa anterior. Essa conta é uma conta de armazenamento local que será usada para carregar a imagem do disco virtual para a VM.
New-AzStorageAccount -Name <Storage account name> -ResourceGroupName <Resource group name> -Location DBELocal -SkuName Standard_LRS
Observação
Somente as contas de armazenamento local, como o armazenamento com redundância local (Standard_LRS ou Premium_LRS), podem ser criadas por meio do Azure Resource Manager. Para criar contas de armazenamento em camadas, confira as etapas em Adicionar e conectar-se a contas de armazenamento no Azure Stack Edge Pro.
Aqui está um exemplo de saída:
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>
Para obter a chave de conta de armazenamento, execute o comando Get-AzStorageAccountKey
. Aqui está um exemplo de saída:
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>
Adicionar o URI do blob ao arquivo hosts
Verifique se você já adicionou o URI de blob no arquivo de hosts para o cliente que você está usando para se conectar ao armazenamento de Blobs. Execute Notepad como administrador e adicione a seguinte entrada para o URI de blob em C:\windows\system32\drivers\etc\hosts
:
<Device IP> <storage account name>.blob.<Device name>.<DNS domain>
Em um ambiente típico, o DNS seria configurado para que todas as contas de armazenamento apontem para o dispositivo Azure Stack Edge Pro com uma entrada *.blob.devicename.domainname.com
.
Instalar certificados (opcional)
Ignore esta etapa se você for se conectar pelo Gerenciador de Armazenamento usando http. Se você estiver usando https, será necessário instalar os certificados apropriados no Gerenciador de Armazenamento. Nesse caso, instale o certificado de ponto de extremidade de blob. Para obter mais informações, confira como criar e carregar certificados em Gerenciar certificados.
Criar e carregar um VHD
Verifique se você tem uma imagem de disco virtual que você pode usar para carregar na etapa posterior. Siga as etapas em Criar uma imagem de VM.
Copie as imagens de disco a serem usadas em blobs de páginas na conta de armazenamento local que você criou nas etapas anteriores. Você pode usar uma ferramenta como Gerenciador de Armazenamento ou AzCopy para carregar o VHD na conta de armazenamento que você criou nas etapas anteriores.
Usar Gerenciador de Armazenamento para carregar
Abra o Gerenciador de Armazenamento. Vá para Editar e verifique se o aplicativo está definido como APIs do Azure Stack de destino.
Instale o certificado do cliente no formato PEM. Acesse Editar > Certificados SSL > Importar certificados. Aponte para o certificado do cliente.
Se você estiver usando certificados gerados pelo dispositivo, baixe e converta o certificado
.cer
do ponto de extremidade do armazenamento de blobs em um formato.pem
. Execute o comando a seguir.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.
Se você estiver trazendo o próprio certificado, use o certificado raiz da cadeia de autenticação no formato
.pem
.
Após importar o certificado, reinicie o Gerenciador de Armazenamento para que as alterações entrem em vigor.
No painel esquerdo, clique com o botão direito em Contas de armazenamento e selecione Conectar-se ao Armazenamento do Azure.
Selecione Usar um nome e uma chave da conta de armazenamento. Selecione Avançar.
Em Conectar com nome e chave, forneça o Nome de exibição, o Nome da conta de armazenamento, a Chave de conta do Armazenamento do Azure. Selecione Outro como domínio de armazenamento e forneça a cadeia de conexão
<device name>.<DNS domain>
. Se você não instalou um certificado no Gerenciador de Armazenamento, marque a opção Usar HTTP. Selecione Avançar.Examine o Resumo de conexão e selecione Conectar.
A conta de armazenamento aparece no painel esquerdo. Selecione e expanda a conta de armazenamento. Selecione Contêineres de blob, clique com o botão direito do mouse e selecione Criar Contêiner de Blob. Forneça um nome para o contêiner de blob.
Selecione o contêiner que você acabou de criar e, no painel direito, selecione Carregar > Carregar arquivos.
Procure e aponte para o VHD que você deseja carregar nos Arquivos selecionados. Selecione o Tipo de blob como Blob de páginas e selecione Carregar.
Depois que o VHD for carregado no contêiner de blob, selecione o VHD, clique com o botão direito do mouse e selecione Propriedades.
Copie e salve o Uri que será usado em etapas posteriores.
Criar imagem para a VM
Para criar uma imagem para a VM, edite o arquivo de parâmetros CreateImage.parameters.json
e implante o modelo CreateImage.json
que usa esse arquivo de parâmetro.
Editar arquivo de parâmetros
O arquivo CreateImage.parameters.json
usa os seguintes parâmetros:
"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>"
},
}
Edite o arquivo CreateImage.parameters.json
para incluir os seguintes valores para o dispositivo Azure Stack Edge Pro:
Forneça o tipo de SO e a Geração Hyper V correspondentes ao VHD que você carregará. O tipo de SO pode ser Windows ou Linux e a Geração de VM pode ser V1 ou V2.
"parameters": { "osType": { "value": "Windows" }, "hyperVGeneration": { "value": "V2" }, }
Altere o URI da imagem para o URI da imagem que você carregou na etapa anterior:
"imageUri": { "value": "https://myasegpusavm.blob.myasegpu1.wdshcsso.com/windows/WindowsServer2016Datacenter.vhd" },
Se estiver usando http com o Gerenciador de Armazenamento, altere o URI para um URI http.
Forneça um nome de imagem exclusivo. Essa imagem será usada para criar uma VM nas etapas posteriores.
Este é um json de exemplo usado neste artigo.
{ "$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" } } }
Salve o arquivo de parâmetros.
Implantar modelo
Implante o modelo CreateImage.json
. Esse modelo implanta os recursos de imagem que serão usados para criar VMs na etapa adiante.
Observação
Ao implantar o modelo, se você receber um erro de autenticação, é possível que as credenciais do Azure para esta sessão tenham expirado. Execute novamente o comando login-Az
para se reconectar ao Azure Resource Manager no dispositivo Azure Stack Edge Pro.
Execute o comando a seguir:
$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>"
Esse comando implanta um recurso de imagem.
Para consultar o recurso, execute o seguinte comando:
Get-AzImage -ResourceGroupName <Resource Group Name> -name <Image Name>
Aqui está um exemplo de saída:
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>
Criar VM
Editar o arquivo de parâmetros para criar uma VM
Para criar uma VM, use o arquivo de parâmetro CreateVM.parameters.json
. Ele usa os parâmetros a seguir.
"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>"
}
Atribua parâmetros apropriados no CreateVM.parameters.json
para o dispositivo Azure Stack Edge Pro.
Forneça um nome exclusivo, o nome do adaptador de rede e o nome de ipconfig.
Insira um nome de usuário, uma senha e um tamanho de VM com suporte.
Quando você habilitou o adaptador de rede para computação, um comutador virtual e uma rede virtual foram criados automaticamente nesse adaptador de rede. Você pode consultar a rede virtual existente para obter o nome da VNet, o nome da sub-rede e o nome do grupo de recursos de da VNet.
Execute o comando a seguir:
Get-AzVirtualNetwork
Veja o exemplo de saída:
PS C:\WINDOWS\system32> Get-AzVirtualNetwork Name : ASEVNET ResourceGroupName : ASERG Location : dbelocal Id : /subscriptions/cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a/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/cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a/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>
Use ASEVNET para o nome da VNet, ASEVNETsubNet para o nome da sub-rede e ASERG para o nome do grupo de recursos da VNet.
Agora você precisará de um endereço IP estático para atribuir à VM que está na rede de sub-rede definida acima. Substitua PrivateIPAddress por esse endereço no arquivo de parâmetro. Para que a VM obtenha um endereço IP do servidor DHCP local, deixe o valor de
privateIPAddress
em branco."privateIPAddress": { "value": "5.5.153.200" },
Salve o arquivo de parâmetros.
Este é um json de exemplo usado neste artigo.
{ "$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" } } }
Implantar modelo para criar uma VM
Implante o modelo CreateVM.json
de criação da VM. Este modelo cria um adaptador de rede a partir da VNet existente e cria a VM a partir da imagem implantada.
Execute o comando a seguir:
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>"
A criação da VM levará 15-20 minutos. Este é um exemplo de saída de uma VM criada com êxito:
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
Você também pode executar o comando
New-AzResourceGroupDeployment
de forma assíncrona com o parâmetro–AsJob
. Este é um exemplo de saída quando o cmdlet é executado em segundo plano. Em seguida, você pode consultar o status do trabalho criado usando o cmdletGet-Job
.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 -- ---- ------------- ----- ----------- -------- -------
Verifique se a VM foi provisionada com êxito. Execute o comando a seguir:
Get-AzVm
Como conectar-se a uma VM
Dependendo se você criou uma VM do Windows ou do Linux, as etapas para conectar-se podem ser diferentes.
Conectar-se à VM do Windows
Siga estas etapas para se conectar a uma VM do Windows.
Conecte-se à sua VM do Windows usando o Protocolo de Desktop Remoto (RDP) por meio do IP que você passou durante a criação da VM.
Em seu cliente, abra o RDP.
Acesse Iniciar e digite mstsc.
No painel Conexão de Área de Trabalho Remota, insira o endereço IP da VM e as credenciais de acesso usadas no arquivo de parâmetros do modelo de VM. Depois, selecione Conectar.
Observação
Talvez seja necessário aprovar a conexão com um computador não confiável.
Agora você está conectado à sua VM que é executada no dispositivo.
Conectar-se à VM do Linux
Siga estas etapas para se conectar a uma VM do Linux.
Conecte-se à VM usando o IP privado que você passou durante a criação da VM.
Abra uma sessão SSH para se conectar com o endereço IP.
ssh -l <username> <ip address>
Quando for solicitada, forneça a senha que você usou ao criar a VM.
Se você precisar informar a chave SSH, use este comando.
ssh -i c:/users/Administrator/.ssh/id_rsa Administrator@5.5.41.236
Veja aqui um exemplo de saída quando você se conecta à 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>