Implementar VMs no seu dispositivo Azure Stack Edge via Azure PowerShell

APLICA-SE A:Yes for Pro GPU SKU Azure 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

Este artigo descreve como criar e gerir uma máquina virtual (VM) no seu dispositivo Azure Stack Edge utilizando a Azure PowerShell.

Fluxo de trabalho de implantação VM

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

  1. Ligue-se ao gestor de recursos Azure local do seu dispositivo.
  2. Identifique a subscrição incorporada no dispositivo.
  3. Traga a sua imagem VM.
  4. Criar um grupo de recursos na subscrição incorporada. O grupo de recursos conterá o VM e todos os recursos conexos.
  5. Crie uma conta de armazenamento local no dispositivo para armazenar o VHD que será usado para criar uma imagem VM.
  6. Faça o upload de uma imagem de origem Windows/Linux na conta de armazenamento para criar um disco gerido.
  7. Utilize o disco gerido para criar uma imagem VM.
  8. Ativar o cálculo numa porta de dispositivo para criar um interruptor virtual.
  9. Isto cria uma rede virtual utilizando o interruptor virtual ligado à porta em que ativou o cálculo.
  10. Crie um VM utilizando a imagem VM, rede virtual e interfaces de rede virtuais previamente criadas para comunicar dentro da rede virtual e atribuir um endereço IP público para aceder remotamente ao VM. Opcionalmente incluem discos de dados para fornecer mais armazenamento para o seu VM.

Pré-requisitos

Antes de poder implantar VMs no seu dispositivo Azure Stack Edge, tem de configurar o seu cliente para se ligar ao dispositivo através do Azure Resource Manager sobre a Azure PowerShell. Para obter instruções detalhadas, consulte Connect to Azure Resource Manager no seu dispositivo Azure Stack Edge.

Certifique-se de que pode utilizar os seguintes passos para aceder ao dispositivo a partir do seu cliente. Já fez esta configuração quando ligou ao Azure Resource Manager, e agora está a verificar se a configuração foi bem sucedida.

  1. Verifique se a comunicação do Gestor de Recursos da Azure está a funcionar executando o seguinte comando:

    Add-AzEnvironment -Name <Environment Name> -ARMEndpoint "https://management.<appliance name>.<DNSDomain>"
    
  2. Para chamar as APIs do dispositivo local para autenticar, insira:

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

    Para ligar através do Azure Resource Manager, forneça o nome de utilizador EdgeArmUser e a sua palavra-passe.

  3. Se configurar o cálculo para Kubernetes, pode saltar este passo. Caso contrário, certifique-se de que ativou uma interface de rede para calcular fazendo o seguinte:

    a. Na sua interface de utilizador local, aceda às definições de Compute .
    b. Selecione a interface de rede que pretende utilizar para criar um interruptor virtual. Os VMs que criar serão ligados a um interruptor virtual ligado a esta porta e à rede associada. Certifique-se de que escolhe uma rede que corresponda ao endereço IP que irá utilizar para o VM.

    Screenshot of the Compute configuration network settings pane.

    c. Em Enable para calcular na interface de rede, selecione Sim. O Azure Stack Edge criará e gerirá um interruptor virtual que corresponda a essa interface de rede. Não introduza IPs específicos para Kubernetes neste momento. Pode levar vários minutos para ativar o cálculo.

    Nota

    Se estiver a criar VMs GPU, selecione uma interface de rede que esteja ligada à internet. Ao fazê-lo, permite-lhe instalar uma extensão GPU no seu dispositivo.

Consulta para uma subscrição incorporada no dispositivo

Para o Azure Resource Manager, apenas uma única subscrição fixa que seja visível pelo utilizador é suportada. Esta subscrição é única por dispositivo, e o nome de subscrição e iD de subscrição não podem ser alterados.

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

Importante

A subscrição é criada quando ativa VMs a partir do portal Azure, e vive localmente no seu dispositivo.

A subscrição é usada para implantar os VMs.

  1. Para listar a subscrição, executar o seguinte comando:

    Get-AzSubscription
    

    Aqui está uma saída de exemplo:

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

    Get-AzResourceProvider
    

    Nota

    Os fornecedores de recursos estão pré-registados e não podem ser modificados ou alterados.

    Aqui está uma saída de exemplo:

    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 por criar um novo grupo de recursos Azure e use-o como um recipiente lógico para todos os recursos relacionados com VM, tais como conta de armazenamento, disco, interface de rede e disco gerido.

Importante

Todos os recursos são criados no mesmo local que o do dispositivo, e a localização está definida para DBELocal.

  1. Estabeleça alguns parâmetros.

    $ResourceGroupName = "<Resource group name>" 
    
  2. Crie um grupo de recursos para os recursos que irá criar para o VM.

    New-AzResourceGroup -Name $ResourceGroupName -Location DBELocal
    

    Aqui está uma saída de exemplo:

    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 utilizando um grupo de recursos existente. Utilize esta conta de armazenamento local para carregar a imagem do disco virtual ao criar um VM.

Antes de criar uma conta de armazenamento local, tem de configurar o seu cliente para se ligar ao dispositivo através do Azure Resource Manager sobre a Azure PowerShell. Para obter instruções detalhadas, consulte Connect to Azure Resource Manager no seu dispositivo Azure Stack Edge.

  1. Estabeleça 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

    Ao utilizar o Azure Resource Manager, pode criar apenas contas de armazenamento local, como armazenamento localmente redundante (standard ou premium). Para criar contas de armazenamento hierárquicas, consulte Tutorial: Transfira dados através de contas de armazenamento com Azure Stack Edge Pro com GPU.

    Aqui está uma saída de exemplo:

    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 de uma conta de armazenamento local existente que criou, forneça o nome do grupo de recursos associado e o nome da conta de armazenamento local.

Get-AzStorageAccountKey

Aqui está uma saída de exemplo:

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>

Adicione o blob URI ao ficheiro anfitrião

Já adicionou o blob URI no ficheiro hostis para o cliente que está a usar para ligar ao Azure Blob Storage in Modificar o ficheiro anfitrião para resolução de nome final de Connecting to Azure Resource Manager no seu dispositivo Azure Stack Edge. Esta entrada foi usada para adicionar o blob URI:

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

Instalar certificados

Se estiver a utilizar HTTPS, tem de instalar os certificados apropriados no seu dispositivo. Aqui, instale o certificado de ponta final da bolha. Para obter mais informações, consulte os certificados de utilização com o seu Azure Stack Edge Pro com dispositivo GPU.

Carregar um VHD

Copie quaisquer imagens de disco a serem usadas em bolhas de página na conta de armazenamento local que criou anteriormente. Pode utilizar uma ferramenta como a AzCopy para carregar o disco rígido virtual (VHD) para a conta de armazenamento.

Utilize os seguintes comandos com AzCopy 10:

  1. Deite alguns parâmetros, incluindo a versão adequada de APIs para AzCopy. Neste exemplo, a AzCopy 10 foi utilizada.

    $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 fonte (neste caso, sistema local) para a conta de armazenamento que criou no seu dispositivo no passo anterior.

    $StorageAccountKey = (Get-AzStorageAccountKey -ResourceGroupName $ResourceGroupName -Name $StorageAccountName)[0].Value    
    $endPoint = (Get-AzStorageAccount -name $StorageAccountName -ResourceGroupName $ResourceGroupName).PrimaryEndpoints.Blob    
    $StorageAccountContext = New-AzStorageContext -StorageAccountName $StorageAccountName -StorageAccountKey $StorageAccountKey -Endpoint $endpoint    
    $StorageAccountSAS = New-AzStorageAccountSASToken -Service Blob -ResourceType Container,Service,Object -Permission "acdlrw" -Context $StorageAccountContext -Protocol HttpsOnly        
    <Path to azcopy.exe> cp "$VHDPath\$VHDFile" "$endPoint$ContainerName$StorageAccountSAS"    
    

    Aqui está uma saída de exemplo:

    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 gerido a partir do VHD

Irá agora criar um disco gerido a partir do VHD carregado.

  1. Estabeleça alguns parâmetros.

    $DiskName = "<Managed disk name>"
    
  2. Crie um disco gerido a partir de VHD carregado. Para obter o URL de origem para o seu VHD, vá ao recipiente na conta de armazenamento que contém o VHD no Storage Explorer. Selecione o VHD e clique à direita e, em seguida, selecione Propriedades. No diálogo Blob Properties , selecione o URI.

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

    Aqui está uma saída de exemplo:

    PS C:\WINDOWS\system32> $DiskName = "myazmd"
    PS C:\WINDOWS\system32> $StorageAccountId = (Get-AzStorageAccount -ResourceGroupName $ResourceGroupName -Name $StorageAccountName).Id
    PS C:\WINDOWS\system32> $DiskConfig = New-AzDiskConfig -Location DBELocal -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             :
    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 VM a partir do disco gerido

Agora vai criar uma imagem VM a partir do disco gerido.

  1. Estabeleça alguns parâmetros.

    $DiskSize = "<Size greater than or equal to size of source managed disk>"
    $OsType = "<linux or windows>" 
    $ImageName = "<Image name>"
    $hyperVGeneration = "<Generation of the image: V1 or V2>" 
    
  2. Criar uma imagem 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á uma saída de exemplo.

    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 o seu VM com recursos previamente criados

Antes de criar e implementar o VM, tem de criar uma rede virtual e associar uma interface de rede virtual com ela.

Importante

Aplicam-se as seguintes regras:

  • Pode criar apenas uma rede virtual, mesmo em todos os 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.
  • Quando criar o cartão de interface de rede virtual, pode utilizar apenas o método de atribuição estática. O utilizador precisa de fornecer um endereço IP privado.

Consultar a rede virtual criada automaticamente

Quando ativa o cálculo a partir da UI local do seu dispositivo, uma rede virtual chamada ASEVNET é criada automaticamente, sob o ASERG grupo de recursos.

Utilize o seguinte comando para consultar a rede virtual existente:

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

Criar uma interface de rede virtual

Criará um cartão de interface de rede virtual utilizando o ID da rede virtual.

  1. Estabeleça alguns parâmetros.

    $IpConfigName = "<IP config name>"
    $NicName = "<Network interface name>"
    
  2. Criar 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 predefinição, um IP é atribuído dinamicamente à sua interface de rede a partir da rede ativada para o cálculo. Utilize o -PrivateIpAddress parameter se estiver a atribuir um IP estático à sua interface de rede.

    Aqui está uma saída de exemplo:

    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, enquanto está a criar um cartão de interface de rede virtual para um VM, pode passar o IP público. Neste caso, o IP público devolve 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 pode utilizar a imagem VM para criar um VM e anexá-la à rede virtual que criou anteriormente.

  1. Descreva o nome de utilizador e a palavra-passe para iniciar sessão no VM que pretende criar.

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

    Depois de ter criado e alimentado o VM, utilizará o nome de utilizador e a palavra-passe anteriores para iniciar seduca.

  2. Desa parte dos parâmetros.

    $VmName = "<VM name>"
    $ComputerName = "<VM display name>"
    $OsDiskName = "<OS disk name>"
    
  3. Criar o 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á uma saída de exemplo.

    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 ao VM que criou, consultar a interface de rede virtual que criou. Localize o PrivateIPAddress IP e copie o IP para o seu VM. Aqui está uma saída de exemplo.

    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 à VM

Dependendo se criou um VM Windows ou um Linux VM, as instruções de ligação podem ser diferentes.

Ligar a uma VM do Linux

Para ligar a um Linux VM, 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 ligar com o endereço IP.

    ssh -l <username> <ip address>
    
  2. A pedido, forneça a senha que usou quando criou o VM.

    Se precisar de fornecer a chave SSH, utilize este comando.

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

    Aqui está uma saída de exemplo quando se liga ao 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 usou um endereço IP público durante a criação de VM, pode utilizar esse IP para ligar ao VM. Para obter o IP público, executar o seguinte comando:

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

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

Ligar a uma VM do Windows

Para ligar a um VM do Windows, faça o seguinte:

Ligue-se ao Seu Windows VM utilizando o Protocolo de Ambiente de Trabalho Remoto (RDP) através do IP que passou durante a criação de VM.

  1. No seu cliente, abra o PDR.

  2. Vá para iniciar e, em seguida, insira mstsc.

  3. No painel de ligação ao ambiente de trabalho remoto , insira o endereço IP do VM e as credenciais de acesso utilizadas no ficheiro de parâmetros VM. Em seguida, selecione Ligar.

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

    Nota

    Talvez precise de aprovar a ligação a uma máquina não fidedquiríssia.

Está agora inscrito no seu VM que funciona no aparelho.

Gerir o VM

As seguintes secções descrevem algumas das operações comuns que pode criar no seu dispositivo Azure Stack Edge Pro.

Lista VMs que estão em execução no dispositivo

Para devolver uma lista de todos os VMs que estão a ser executados no seu dispositivo Azure Stack Edge, executa este comando:

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

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

Ligue o VM

Para ligar uma máquina virtual que está a funcionar no seu dispositivo, executa o seguinte cmdlet:

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

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

Suspender ou desligar o VM

Para parar ou desligar uma máquina virtual que está a funcionar no seu dispositivo, executa o seguinte cmdlet:

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

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

Adicionar um disco de dados

Se os requisitos de carga de trabalho no seu VM aumentarem, poderá ter de 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 seu dispositivo, executar o seguinte cmdlet:

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

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

Passos seguintes

Cmdlets do Gestor de Recursos Azure