Implantar VMs em seu dispositivo Azure Stack Edge por meio do Azure PowerShell

APLICA-SE A:Yes for Pro GPU SKUAzure Stack Edge Pro - GPUYes for Pro 2 SKUAzure Stack Edge Pro 2Yes for Pro R SKUAzure Stack Edge Pro R Azure Stack Edge Mini RYes for Mini R SKU

Este artigo descreve como criar e gerenciar uma máquina virtual (VM) em seu dispositivo Azure Stack Edge usando o Azure PowerShell.

Fluxo de trabalho de implantação de VM

O fluxo de trabalho de implantação de alto nível da implantação de VM é o seguinte:

  1. Conecte-se ao Azure Resource Manager local do seu dispositivo.
  2. Identifique a subscrição incorporada no dispositivo.
  3. Traga sua imagem de VM.
  4. Crie um grupo de recursos na assinatura interna. O grupo de recursos contém a VM e todos os recursos relacionados.
  5. Crie uma conta de armazenamento local no dispositivo para armazenar o VHD usado para criar uma imagem de VM.
  6. Carregue uma imagem de origem do Windows/Linux na conta de armazenamento para criar um disco gerenciado.
  7. Use o disco gerenciado para criar uma imagem de VM.
  8. Habilite a computação em uma porta de dispositivo para criar um comutador virtual.
  9. Isso cria uma rede virtual usando o comutador virtual conectado à porta na qual você habilitou a computação.
  10. Crie uma VM usando a imagem da VM criada anteriormente, a rede virtual e a(s) interface(s) de rede virtual para se comunicar dentro da rede virtual e atribuir um endereço IP público para acessar remotamente a VM. Opcionalmente, inclua discos de dados para fornecer mais armazenamento para sua VM.

Pré-requisitos

Antes de implantar VMs em seu dispositivo Azure Stack Edge, você deve configurar seu cliente para se conectar ao dispositivo por meio do Azure Resource Manager pelo Azure PowerShell. Para obter instruções detalhadas, consulte Conectar-se ao Azure Resource Manager em seu dispositivo Azure Stack Edge.

Certifique-se de que pode utilizar os seguintes passos para aceder ao dispositivo a partir do seu cliente. Você já fez essa configuração quando se conectou ao Gerenciador de Recursos do Azure e agora está verificando se a configuração foi bem-sucedida.

  1. Verifique se a comunicação do Azure Resource Manager está funcionando executando o seguinte comando:

    Add-AzEnvironment -Name <Environment Name> -ARMEndpoint "https://management.<appliance name>.<DNSDomain>"
    
  2. Para chamar as APIs do dispositivo local para autenticação, digite:

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

    Para se conectar por meio do Gerenciador de Recursos do Azure, forneça o nome de usuário EdgeArmUser e sua senha.

  3. Se você configurou a computação para o Kubernetes, poderá ignorar esta etapa. Caso contrário, verifique se você habilitou uma interface de rede para computação fazendo o seguinte:

    a. Na interface de usuário local, vá para Configurações de computação .
    b. Selecione a interface de rede que você deseja usar para criar um comutador virtual. As VMs criadas serão conectadas a um comutador virtual conectado a essa porta e à rede associada. Certifique-se de escolher uma rede que corresponda ao endereço IP que você usará para a VM.

    Screenshot of the Compute configuration network settings pane.

    c. Em Ativar para computação na interface de rede, selecione Sim. O Azure Stack Edge criará e gerenciará um comutador virtual que corresponde a essa interface de rede. Não insira IPs específicos para o Kubernetes no momento. Pode levar vários minutos para habilitar a computação.

    Nota

    Se você estiver criando VMs GPU, selecione uma interface de rede conectada à Internet. Isso permite que você instale uma extensão de GPU no seu dispositivo.

Consultar uma subscrição incorporada no dispositivo

Para o Azure Resource Manager, apenas uma única assinatura fixa visível pelo usuário é suportada. Esta subscrição é exclusiva por dispositivo e o nome e o ID da subscrição não podem ser alterados.

A assinatura contém todos os recursos necessários para a criação de VM.

Importante

A assinatura é criada quando você habilita VMs do portal do Azure e vive localmente em seu dispositivo.

A assinatura é usada para implantar as VMs.

  1. Para listar a assinatura, execute o seguinte comando:

    Get-AzSubscription
    

    Aqui estão alguns exemplos de saída:

    PS C:\WINDOWS\system32> Get-AzSubscription
    
    Name                          Id                                   TenantId
    ----                          --                                   --------
    Default Provider Subscription ...                                  ...
    
    
    PS C:\WINDOWS\system32>
    
  2. Obtenha uma lista dos provedores de recursos registrados que estão sendo executados no dispositivo. A lista normalmente inclui computação, rede e armazenamento.

    Get-AzResourceProvider
    

    Nota

    Os provedores de recursos são pré-registrados e não podem ser modificados ou alterados.

    Aqui estão alguns exemplos de saída:

    PS C:\WINDOWS\system32>  Get-AzResourceProvider
    
    ProviderNamespace : Microsoft.AzureBridge
    RegistrationState : Registered
    ResourceTypes     : {locations, operations, locations/ingestionJobs}
    Locations         : {DBELocal}
    
    ProviderNamespace : Microsoft.Compute
    RegistrationState : Registered
    ResourceTypes     : {virtualMachines, virtualMachines/extensions, locations, operations...}
    Locations         : {DBELocal}
    
    ProviderNamespace : Microsoft.Network
    RegistrationState : Registered
    ResourceTypes     : {operations, locations, locations/operations, locations/usages...}
    Locations         : {DBELocal}
    
    ProviderNamespace : Microsoft.Resources
    RegistrationState : Registered
    ResourceTypes     : {tenants, locations, providers, checkresourcename...}
    Locations         : {DBELocal}
    
    ProviderNamespace : Microsoft.Storage
    RegistrationState : Registered
    ResourceTypes     : {storageaccounts, storageAccounts/blobServices, storageAccounts/tableServices,
                        storageAccounts/queueServices...}
    Locations         : {DBELocal}
    
    PS C:\WINDOWS\system32>
    

Criar um grupo de recursos

Comece criando um novo grupo de recursos do Azure e use-o como um contêiner lógico para todos os recursos relacionados à VM, como conta de armazenamento, disco, interface de rede e disco gerenciado.

Importante

Todos os recursos são criados no mesmo local que o do dispositivo, e o local é definido como DBELocal.

  1. Defina alguns parâmetros.

    $ResourceGroupName = "<Resource group name>" 
    
  2. Crie um grupo de recursos para os recursos que você cria para a VM.

    New-AzResourceGroup -Name $ResourceGroupName -Location DBELocal
    

    Aqui estão alguns exemplos de saída:

    PS C:\WINDOWS\system32> New-AzResourceGroup -Name myaseazrg -Location DBELocal
    
    ResourceGroupName : myaseazrg
    Location          : dbelocal
    ProvisioningState : Succeeded
    Tags              :
    ResourceId        : /subscriptions/.../resourceGroups/myaseazrg
    
    PS C:\WINDOWS\system32>
    

Criar uma conta de armazenamento local

Crie uma nova conta de armazenamento local usando um grupo de recursos existente. Use essa conta de armazenamento local para carregar a imagem do disco virtual ao criar uma VM.

Antes de criar uma conta de armazenamento local, você deve configurar seu cliente para se conectar ao dispositivo por meio do Azure Resource Manager pelo Azure PowerShell. Para obter instruções detalhadas, consulte Conectar-se ao Azure Resource Manager em seu dispositivo Azure Stack Edge.

  1. Defina alguns parâmetros.

    $StorageAccountName = "<Storage account name>"    
    
  2. Crie uma nova conta de armazenamento local no seu dispositivo.

    New-AzStorageAccount -Name $StorageAccountName -ResourceGroupName $ResourceGroupName -Location DBELocal -SkuName Standard_LRS
    

    Nota

    Usando o Gerenciador de Recursos do Azure, você pode criar apenas contas de armazenamento local, como armazenamento com redundância local (padrão ou premium). Para criar contas de armazenamento hierárquico, consulte Tutorial: Transferir dados através de contas de armazenamento com o Azure Stack Edge Pro com GPU.

    Aqui está um exemplo de saída:

    PS C:\WINDOWS\system32> New-AzStorageAccount -Name myaseazsa -ResourceGroupName myaseazrg -Location DBELocal -SkuName Standard_LRS
    
    StorageAccountName ResourceGroupName PrimaryLocation SkuName      Kind    AccessTier CreationTime
    ------------------ ----------------- --------------- -------      ----    ---------- ------------
    myaseazsa          myaseazrg         DBELocal        Standard_LRS Storage            6/10/2021 11:45...
    
    PS C:\WINDOWS\system32>
    

Para obter as chaves de acesso para uma conta de armazenamento local existente que você criou, forneça o nome do grupo de recursos associado e o nome da conta de armazenamento local.

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: myaseazrg
Name: myaseazsa
    
KeyName    Value                                                                                       Permissions
-------    -----                                                                                       ------
key1       gv3OF57tuPDyzBNc1M7fhil2UAiiwnhTT6zgiwE3TlF/CD217Cvw2YCPcrKF47joNKRvzp44leUe5HtVkGx8RQ==    Full
key2       kmEynIs3xnpmSxWbU41h5a7DZD7v4gGV3yXa2NbPbmhrPt10+QmE5PkOxxypeSqbqzd9si+ArNvbsqIRuLH2Lw==    Full
    
PS C:\WINDOWS\system32>

Adicionar o URI de blob ao arquivo host

Você já adicionou o URI de blob no arquivo hosts para o cliente que está usando para se conectar ao Armazenamento de Blobs do Azure em Modificar arquivo de host para resolução de nome de ponto de extremidade de Conectando-se ao Azure Resource Manager em seu dispositivo Azure Stack Edge. Esta entrada foi usada para adicionar o URI de blob:

<Device IP address> <storage name>.blob.<appliance name>.<dnsdomain>

Instalar certificados

Se você estiver usando HTTPS, precisará instalar os certificados apropriados em seu dispositivo. Aqui, você instala o certificado de ponto de extremidade blob. Para obter mais informações, consulte Usar certificados com seu dispositivo Azure Stack Edge Pro com GPU.

Carregar um VHD

Copie todas as imagens de disco a serem usadas em blobs de página na conta de armazenamento local que você criou anteriormente. Você pode usar uma ferramenta como AzCopy para carregar o disco rígido virtual (VHD) para a conta de armazenamento.

Use os seguintes comandos com o AzCopy 10:

  1. Defina alguns parâmetros, incluindo a versão apropriada das APIs para AzCopy. Neste exemplo, AzCopy 10 foi usado.

    $Env:AZCOPY_DEFAULT_SERVICE_API_VERSION="2019-07-07"    
    $ContainerName = <Container name>
    $ResourceGroupName = <Resource group name>
    $StorageAccountName = <Storage account name>
    $VHDPath = "Full VHD Path"
    $VHDFile = <VHD file name>
    
  2. Copie o VHD da origem (neste caso, sistema local) para a conta de armazenamento que você criou no dispositivo na etapa anterior.

    $StorageAccountKey = (Get-AzStorageAccountKey -ResourceGroupName $ResourceGroupName -Name $StorageAccountName)[0].Value
    $blobendpoint = (Get-AzEnvironment -Name Environment Name).StorageEndpointSuffix
    $StorageAccountContext = New-AzStorageContext -StorageAccountName $StorageAccountName -StorageAccountKey $StorageAccountKey -Endpoint $blobendpoint
    <Create the container if it does not exist>
    $containerName = "con1"
    $container = New-AzStorageContainer -Name $containerName -Context $StorageAccountContext -Permission Container
    $StorageAccountSAS = New-AzStorageAccountSASToken -Service Blob -ResourceType Container,Service,Object -Permission "acdlrw" -Context $StorageAccountContext -Protocol HttpsOnly
    $endPoint = (Get-AzStorageAccount -name $StorageAccountName -ResourceGroupName $ResourceGroupName).PrimaryEndpoints.Blob
    <Path to azcopy.exe> cp "$VHDPath\$VHDFile" "$endPoint$ContainerName$StorageAccountSAS"    
    

    Aqui está um exemplo de saída:

    PS C:\windows\system32> $ContainerName = "testcontainer1"
    PS C:\windows\system32> $ResourceGroupName = "myaseazrg"
    PS C:\windows\system32> $StorageAccountName = "myaseazsa"
    PS C:\windows\system32> $VHDPath = "C:\Users\alkohli\Downloads\Ubuntu1604"           
    PS C:\windows\system32> $VHDFile = "ubuntu13.vhd"
    
    PS C:\windows\system32> $StorageAccountKey = (Get-AzStorageAccountKey -ResourceGroupName $ResourceGroupName -Name $StorageAccountName)[0].Value
    PS C:\windows\system32> $endPoint = (Get-AzStorageAccount -name $StorageAccountName -ResourceGroupName $ResourceGroupName).PrimaryEndpoints.Blob
    PS C:\windows\system32> $StorageAccountContext = New-AzStorageContext -StorageAccountName $StorageAccountName -StorageAccountKey $StorageAccountKey -Endpoint $endpoint
    PS C:\windows\system32> $StorageAccountSAS = New-AzStorageAccountSASToken -Service Blob -ResourceType Container,Service,Object -Permission "acdlrw" -Context $StorageAccountContext -Protocol HttpsOnly
    
    PS C:\windows\system32> C:\azcopy\azcopy_windows_amd64_10.10.0\azcopy.exe cp "$VHDPath\$VHDFile" "$endPoint$ContainerName$StorageAccountSAS"
    INFO: Scanning...
    INFO: Any empty folders will not be processed, because source and/or destination doesn't have full folder support
    
    Job 72a5e3dd-9210-3e43-6691-6bebd4875760 has started
    Log file is located at: C:\Users\alkohli\.azcopy\72a5e3dd-9210-3e43-6691-6bebd4875760.log
    
    INFO: azcopy.exe: A newer version 10.11.0 is available to download
    

Criar um disco gerenciado a partir do VHD

Agora você criará um disco gerenciado a partir do VHD carregado.

  1. Defina alguns parâmetros.

    $DiskName = "<Managed disk name>"
    $HyperVGeneration = "<Generation of the image: V1 or V2>"
    
  2. Crie um disco gerenciado a partir do VHD carregado. Para obter a URL de origem do VHD, vá para o contêiner na conta de armazenamento que contém o VHD no Gerenciador de Armazenamento. Selecione o VHD, clique com o botão direito do mouse e, em seguida, selecione Propriedades. Na caixa de diálogo Propriedades do Blob, selecione o URI.

    $StorageAccountId = (Get-AzStorageAccount -ResourceGroupName $ResourceGroupName -Name $StorageAccountName).Id    
    $DiskConfig = New-AzDiskConfig -Location DBELocal -HyperVGeneration $HyperVGeneration -StorageAccountId $StorageAccountId -CreateOption Import -SourceUri "Source URL for your VHD"
    New-AzDisk -ResourceGroupName $ResourceGroupName -DiskName $DiskName -Disk $DiskConfig
    

    Aqui está um exemplo de saída:.

    PS C:\WINDOWS\system32> $DiskName = "myazmd"
    PS C:\WINDOWS\system32  $HyperVGeneration = "V1"
    PS C:\WINDOWS\system32> $StorageAccountId = (Get-AzStorageAccount -ResourceGroupName $ResourceGroupName -Name $StorageAccountName).Id
    PS C:\WINDOWS\system32> $DiskConfig = New-AzDiskConfig -Location DBELocal -HyperVGeneration $HyperVGeneration -StorageAccountId $StorageAccountId -CreateOption Import -SourceUri "https://myaseazsa.blob.myasegpu.wdshcsso.com/testcontainer1/ubuntu13.vhd"
    PS C:\WINDOWS\system32> New-AzDisk -ResourceGroupName $ResourceGroupName -DiskName $DiskName -Disk $DiskConfig
    
    ResourceGroupName            : myaseazrg
    ManagedBy                    :
    Sku                          : Microsoft.Azure.Management.Compute.Models.DiskSku
    Zones                        :
    TimeCreated                  : 6/24/2021 12:19:56 PM
    OsType                       :
    HyperVGeneration             : V1
    CreationData                 : Microsoft.Azure.Management.Compute.Models.CreationDat
                                   a
    DiskSizeGB                   : 30
    DiskSizeBytes                : 32212254720
    UniqueId                     : 53743801-cbf2-4d2f-acb4-971d037a9395
    EncryptionSettingsCollection :
    ProvisioningState            : Succeeded
    DiskIOPSReadWrite            : 500
    DiskMBpsReadWrite            : 60
    DiskState                    : Unattached
    Encryption                   : Microsoft.Azure.Management.Compute.Models.Encryption
    Id                           : /subscriptions/.../r
                                   esourceGroups/myaseazrg/providers/Microsoft.Compute/d
                                   isks/myazmd
    Name                         : myazmd
    Type                         : Microsoft.Compute/disks
    Location                     : DBELocal
    Tags                         : {}
    
    PS C:\WINDOWS\system32>
    

Criar uma imagem de VM a partir do disco gerenciado

Agora você criará uma imagem de VM a partir do disco gerenciado.

  1. Defina alguns parâmetros.

    $DiskSize = "<Size greater than or equal to size of source managed disk>"
    $OsType = "<linux or windows>" 
    $ImageName = "<Image name>"
    
  2. Crie uma imagem de VM. Os tipos de SO suportados são Linux e Windows.

    $imageConfig = New-AzImageConfig -Location DBELocal -HyperVGeneration $hyperVGeneration 
    $ManagedDiskId = (Get-AzDisk -Name $DiskName -ResourceGroupName $ResourceGroupName).Id
    Set-AzImageOsDisk -Image $imageConfig -OsType $OsType -OsState 'Generalized' -DiskSizeGB $DiskSize -ManagedDiskId $ManagedDiskId 
    New-AzImage -Image $imageConfig -ImageName $ImageName -ResourceGroupName $ResourceGroupName  
    

    Aqui está um exemplo de saída.

    PS C:\WINDOWS\system32> $OsType = "linux"
    PS C:\WINDOWS\system32> $ImageName = "myaseazlinuxvmimage"
    PS C:\WINDOWS\system32> $DiskSize = 35
    PS C:\WINDOWS\system32> $imageConfig = New-AzImageConfig -Location DBELocal
    PS C:\WINDOWS\system32> $ManagedDiskId = (Get-AzDisk -Name $DiskName -ResourceGroupName $ResourceGroupName).Id
    PS C:\WINDOWS\system32> Set-AzImageOsDisk -Image $imageConfig -OsType $OsType -OsState 'Generalized' -DiskSizeGB $DiskSize -ManagedDiskId $ManagedDiskId
    
    ResourceGroupName    :
    SourceVirtualMachine :
    StorageProfile       : Microsoft.Azure.Management.Compute.Models.ImageStorageProfile
    ProvisioningState    :
    HyperVGeneration     : V1
    Id                   :
    Name                 :
    Type                 :
    Location             : DBELocal
    Tags                 :
    
    PS C:\WINDOWS\system32> New-AzImage -Image $imageConfig -ImageName $ImageName -ResourceGroupName $ResourceGroupName
    
    ResourceGroupName    : myaseazrg
    SourceVirtualMachine :
    StorageProfile       : Microsoft.Azure.Management.Compute.Models.ImageStorageProfile
    ProvisioningState    : Succeeded
    HyperVGeneration     : V1
    Id                   : /subscriptions/.../resourceG
                           roups/myaseazrg/providers/Microsoft.Compute/images/myaseazlin
                           uxvmimage
    Name                 : myaseazlinuxvmimage
    Type                 : Microsoft.Compute/images
    Location             : dbelocal
    Tags                 : {}
    
    PS C:\WINDOWS\system32> 
    

Crie sua VM com recursos criados anteriormente

Antes de criar e implantar a VM, você deve criar uma rede virtual e associar uma interface de rede virtual a ela.

Importante

Aplicam-se as seguintes regras:

  • Você pode criar apenas uma rede virtual, mesmo entre grupos de recursos. A rede virtual deve ter exatamente o mesmo espaço de endereço que a rede lógica.
  • A rede virtual pode ter apenas uma sub-rede. A sub-rede deve ter exatamente o mesmo espaço de endereço que a rede virtual.
  • Ao criar a placa de interface de rede virtual, você pode usar apenas o método de alocação estática. O usuário precisa fornecer um endereço IP privado.

Consultar a rede virtual criada automaticamente

Quando você habilita a computação a partir da interface do usuário local do seu dispositivo, uma rede virtual chamada ASEVNET é criada automaticamente, sob o ASERG grupo de recursos.

Use o seguinte comando para consultar a rede virtual existente:

$ArmVn = Get-AzVirtualNetwork -Name ASEVNET -ResourceGroupName ASERG 

Criar uma interface de rede virtual

Criar uma placa de interface de rede virtual usando o ID de sub-rede de rede virtual.

  1. Defina alguns parâmetros.

    $IpConfigName = "<IP config name>"
    $NicName = "<Network interface name>"
    
  2. Crie uma interface de rede virtual.

    $ipConfig = New-AzNetworkInterfaceIpConfig -Name $IpConfigName -SubnetId $aRmVN.Subnets[0].Id 
    $Nic = New-AzNetworkInterface -Name $NicName -ResourceGroupName $ResourceGroupName -Location DBELocal -IpConfiguration $IpConfig    
    

    Por padrão, um IP é atribuído dinamicamente à sua interface de rede a partir da rede habilitada para computação. Use o -PrivateIpAddress parameter se você estiver alocando um IP estático para sua interface de rede.

    Aqui está um exemplo de saída:

    PS C:\WINDOWS\system32> $IpConfigName = "myazipconfig1"
    PS C:\WINDOWS\system32> $NicName = "myaznic1"
    PS C:\WINDOWS\system32> $ipConfig = New-AzNetworkInterfaceIpConfig -Name $IpConfigName -SubnetId $aRmVN.Subnets[0].Id 
    PS C:\WINDOWS\system32> $ipConfig = New-AzNetworkInterfaceIpConfig -Name $IpConfigName -SubnetId $aRmVN.Subnets[0].Id
    PS C:\WINDOWS\system32> $Nic = New-AzNetworkInterface -Name $NicName -ResourceGroupName $ResourceGroupName -Location DBELocal -IpConfiguration $IpConfig
    PS C:\WINDOWS\system32> $Nic
    
    Name                        : myaznic1
    ResourceGroupName           : myaseazrg
    Location                    : dbelocal
    Id                          : /subscriptions/.../re
                                  sourceGroups/myaseazrg/providers/Microsoft.Network/net
                                  workInterfaces/myaznic1
    Etag                        : W/"0b20057b-2102-4f34-958b-656327c0fb1d"
    ResourceGuid                : e7d4131f-6f01-4492-9d4c-a8ff1af7244f
    ProvisioningState           : Succeeded
    Tags                        :
    VirtualMachine              : null
    IpConfigurations            : [
                                    {
                                      "Name": "myazipconfig1",
                                      "Etag":
                                  "W/\"0b20057b-2102-4f34-958b-656327c0fb1d\"",
                                      "Id": "/subscriptions/.../resourceGroups/myaseazrg/providers/Microsoft.
                                  Network/networkInterfaces/myaznic1/ipConfigurations/my
                                  azipconfig1",
                                      "PrivateIpAddress": "10.126.76.60",
                                      "PrivateIpAllocationMethod": "Dynamic",
                                      "Subnet": {
                                        "Delegations": [],
                                        "Id": "/subscriptions/.../resourceGroups/ASERG/providers/Microsoft.Ne
                                  twork/virtualNetworks/ASEVNET/subnets/ASEVNETsubNet",
                                        "ServiceAssociationLinks": []
                                      },
                                      "ProvisioningState": "Succeeded",
                                      "PrivateIpAddressVersion": "IPv4",
                                      "LoadBalancerBackendAddressPools": [],
                                      "LoadBalancerInboundNatRules": [],
                                      "Primary": true,
                                      "ApplicationGatewayBackendAddressPools": [],
                                      "ApplicationSecurityGroups": []
                                    }
                                  ]
    DnsSettings                 : {
                                    "DnsServers": [],
                                    "AppliedDnsServers": [],
                                    "InternalDomainNameSuffix": "auwlfcx0dhxurjgisct43fc
                                  ywb.a--x.internal.cloudapp.net"
                                  }
    EnableIPForwarding          : False
    EnableAcceleratedNetworking : False
    NetworkSecurityGroup        : null
    Primary                     :
    MacAddress                  : 001DD84A58D1
    
    PS C:\WINDOWS\system32>
    

Opcionalmente, ao criar uma placa de interface de rede virtual para uma VM, você pode passar o IP público. Nesse caso, o IP público retorna o IP privado.

New-AzPublicIPAddress -Name <Public IP> -ResourceGroupName <ResourceGroupName> -AllocationMethod Static -Location DBELocal
$publicIP = (Get-AzPublicIPAddress -Name <Public IP> -ResourceGroupName <Resource group name>).Id
$ipConfig = New-AzNetworkInterfaceIpConfig -Name <ConfigName> -PublicIpAddressId $publicIP -SubnetId $subNetId

Criar uma VM

Agora você pode usar a imagem da VM para criar uma VM e anexá-la à rede virtual criada anteriormente.

  1. Defina o nome de usuário e a senha para entrar na VM que você deseja criar.

    $pass = ConvertTo-SecureString "<Password>" -AsPlainText -Force;
    $cred = New-Object System.Management.Automation.PSCredential("<Enter username>", $pass)
    

    Depois de criar e ativar a VM, você usará o nome de usuário e a senha anteriores para entrar nela.

  2. Defina os parâmetros.

    $VmName = "<VM name>"
    $ComputerName = "<VM display name>"
    $OsDiskName = "<OS disk name>"
    
  3. Crie a VM.

    $VirtualMachine =  New-AzVMConfig -VmName $VmName -VMSize "Standard_D1_v2"
    
    $VirtualMachine =  Set-AzVMOperatingSystem -VM $VirtualMachine -Linux -ComputerName $ComputerName -Credential $cred
    
    $VirtualMachine =  Set-AzVmOsDisk -VM $VirtualMachine -Name $OsDiskName -Caching "ReadWrite" -CreateOption "FromImage" -Linux -StorageAccountType Standard_LRS
    
    $nicID = (Get-AzNetworkInterface -Name $NicName -ResourceGroupName $ResourceGroupName).Id
    
    $VirtualMachine =  Add-AzVMNetworkInterface -Vm $VirtualMachine -Id $nicID
    
    $image = ( Get-AzImage -ResourceGroupName $ResourceGroupName -ImageName $ImageName).Id
    
    $VirtualMachine =  Set-AzVMSourceImage -VM $VirtualMachine -Id $image
    
    New-AzVM -ResourceGroupName $ResourceGroupName -Location DBELocal -VM $VirtualMachine -Verbose
    

    Aqui está um exemplo de saída.

    PS C:\WINDOWS\system32> $pass = ConvertTo-SecureString "Password1" -AsPlainText -Force;
    PS C:\WINDOWS\system32> $cred = New-Object System.Management.Automation.PSCredential("myazuser", $pass)
    PS C:\WINDOWS\system32> $VmName = "myazvm"
    >> $ComputerName = "myazvmfriendlyname"
    >> $OsDiskName = "myazosdisk1"
    PS C:\WINDOWS\system32> $VirtualMachine =  New-AzVMConfig -VmName $VmName -VMSize "Standard_D1_v2"
    PS C:\WINDOWS\system32> $VirtualMachine =  Set-AzVMOperatingSystem -VM $VirtualMachine -Linux -ComputerName $ComputerName -Credential $cred
    PS C:\WINDOWS\system32> $VirtualMachine =  Set-AzVmOsDisk -VM $VirtualMachine -Name $OsDiskName -Caching "ReadWrite" -CreateOption "FromImage" -Linux -StorageAccountType Standard_LRS
    PS C:\WINDOWS\system32> $nicID = (Get-AzNetworkInterface -Name $NicName -ResourceGroupName $ResourceGroupName).Id
    PS C:\WINDOWS\system32> $nicID/subscriptions/.../resourceGroups/myaseazrg/providers/Microsoft.Network/networkInterfaces/myaznic1
    PS C:\WINDOWS\system32> $VirtualMachine =  Add-AzVMNetworkInterface -VM $VirtualMachine -Id $nicID
    PS C:\WINDOWS\system32> $image = ( Get-AzImage -ResourceGroupName $ResourceGroupName -ImageName $ImageName).Id
    PS C:\WINDOWS\system32> $VirtualMachine =  Set-AzVMSourceImage -VM $VirtualMachine -Id $image
    PS C:\WINDOWS\system32> New-AzVM -ResourceGroupName $ResourceGroupName -Location DBELocal -VM $VirtualMachine -Verbose
    WARNING: Since the VM is created using premium storage or managed disk, existing
    standard storage account, myaseazsa, is used for boot diagnostics.
    VERBOSE: Performing the operation "New" on target "myazvm".
    
    RequestId IsSuccessStatusCode StatusCode ReasonPhrase
    --------- ------------------- ---------- ------------
                             True         OK OK
    
  4. Para descobrir o IP atribuído à VM que você criou, consulte a interface de rede virtual que você criou. Localize o e copie o PrivateIPAddress IP da sua VM. Aqui está um exemplo de saída.

    PS C:\WINDOWS\system32> $Nic
    
    Name                        : myaznic1
    ResourceGroupName           : myaseazrg
    Location                    : dbelocal
    Id                          : /subscriptions/.../re
                                  sourceGroups/myaseazrg/providers/Microsoft.Network/net
                                  workInterfaces/myaznic1
    Etag                        : W/"0b20057b-2102-4f34-958b-656327c0fb1d"
    ResourceGuid                : e7d4131f-6f01-4492-9d4c-a8ff1af7244f
    ProvisioningState           : Succeeded
    Tags                        :
    VirtualMachine              : null
    IpConfigurations            : [
                                    {
                                      "Name": "myazipconfig1",
                                      "Etag":
                                  "W/\"0b20057b-2102-4f34-958b-656327c0fb1d\"",
                                      "Id": "/subscriptions/.../resourceGroups/myaseazrg/providers/Microsoft.
                                  Network/networkInterfaces/myaznic1/ipConfigurations/my
                                  azipconfig1",
                                      "PrivateIpAddress": "10.126.76.60",
                                      "PrivateIpAllocationMethod": "Dynamic",
                                      "Subnet": {
                                        "Delegations": [],
                                        "Id": "/subscriptions/.../resourceGroups/ASERG/providers/Microsoft.Ne
                                  twork/virtualNetworks/ASEVNET/subnets/ASEVNETsubNet",
                                        "ServiceAssociationLinks": []
                                      },
                                      "ProvisioningState": "Succeeded",
                                      "PrivateIpAddressVersion": "IPv4",
                                      "LoadBalancerBackendAddressPools": [],
                                      "LoadBalancerInboundNatRules": [],
                                      "Primary": true,
                                      "ApplicationGatewayBackendAddressPools": [],
                                      "ApplicationSecurityGroups": []
                                    }
                                  ]
    DnsSettings                 : {
                                    "DnsServers": [],
                                    "AppliedDnsServers": [],
                                    "InternalDomainNameSuffix": "auwlfcx0dhxurjgisct43fc
                                  ywb.a--x.internal.cloudapp.net"
                                  }
    EnableIPForwarding          : False
    EnableAcceleratedNetworking : False
    NetworkSecurityGroup        : null
    Primary                     :
    MacAddress                  : 001DD84A58D1
    
    PS C:\WINDOWS\system32>
    

Ligar-se à VM

Dependendo se você criou uma VM do Windows ou uma VM do Linux, as instruções de conexão podem ser diferentes.

Ligar a uma VM do Linux

Para se conectar a uma VM Linux, faça o seguinte:

Ligue-se à VM através do IP privado que transmitiu durante a criação da VM.

  1. Abra uma sessão SSH para se conectar com o endereço IP.

    ssh -l <username> <ip address>
    
  2. No prompt, forneça a senha que você usou quando criou a VM.

    Se você precisar fornecer a chave SSH, use este comando.

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

    Aqui está 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>
    

Se você usou um endereço IP público durante a criação da VM, poderá usar esse IP para se conectar à VM. Para obter o IP público, execute o seguinte comando:

$publicIp = Get-AzPublicIpAddress -Name $PublicIp -ResourceGroupName $ResourceGroupName

Nesse caso, o IP público é o mesmo que o IP privado que você passou durante a criação da interface de rede virtual.

Ligar a uma VM do Windows

Para se conectar a uma VM do Windows, faça o seguinte:

Conecte-se à sua VM do Windows usando o protocolo RDP (Remote Desktop Protocol) por meio do IP que você passou durante a criação da VM.

  1. No seu cliente, abra o RDP.

  2. Vá para Iniciar e digite mstsc.

  3. 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 de modelo de VM. Em seguida, selecione Conectar.

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

    Nota

    Talvez seja necessário aprovar a conexão a uma máquina não confiável.

Agora você está conectado à sua VM que é executada no dispositivo.

Gerenciar a VM

As seções a seguir descrevem algumas das operações comuns que você pode criar em seu dispositivo Azure Stack Edge Pro.

Listar VMs que estão sendo executadas no dispositivo

Para retornar uma lista de todas as VMs que estão sendo executadas em seu dispositivo Azure Stack Edge, execute este comando:

Get-AzVM -ResourceGroupName <String> -Name <String>

Para obter mais informações sobre esse cmdlet, consulte Get-AzVM.

Ativar a VM

Para ativar uma máquina virtual em execução no dispositivo, execute o seguinte cmdlet:

Start-AzVM [-Name] <String> [-ResourceGroupName] <String>

Para obter mais informações sobre esse cmdlet, consulte Start-AzVM.

Suspender ou desligar a VM

Para parar ou desligar uma máquina virtual em execução no dispositivo, execute o seguinte cmdlet:

Stop-AzVM [-Name] <String> [-StayProvisioned] [-ResourceGroupName] <String>

Para obter mais informações sobre esse cmdlet, consulte Stop-AzVM cmdlet.

Adicionar um disco de dados

Se os requisitos de carga de trabalho em sua VM aumentarem, talvez seja necessário adicionar um disco de dados. Para tal, execute o seguinte comando:

Add-AzRmVMDataDisk -VM $VirtualMachine -Name "disk1" -VhdUri "https://contoso.blob.core.windows.net/vhds/diskstandard03.vhd" -LUN 0 -Caching ReadOnly -DiskSizeinGB 1 -CreateOption Empty 
 
Update-AzVM -ResourceGroupName "<Resource Group Name string>" -VM $VirtualMachine

Elimine a VM

Para remover uma máquina virtual do dispositivo, execute o seguinte cmdlet:

Remove-AzVM [-Name] <String> [-ResourceGroupName] <String>

Para obter mais informações sobre esse cmdlet, consulte Remove-AzVm cmdlet.

Próximos passos

Cmdlets do Azure Resource Manager