Condividi tramite


Distribuire macchine virtuali nel dispositivo Azure Stack Edge tramite Azure PowerShell

SI APPLICA A:Sì per LO SKU GPU ProAzure Stack Edge Pro - GPUSì per lo SKU Pro 2Azure Stack Edge Pro 2Sì per lo SKU Pro RAzure Stack Edge Pro RSì per mini R SKUAzure Stack Edge Mini R

Questo articolo descrive come creare e gestire una macchina virtuale (VM) nel dispositivo Azure Stack Edge usando Azure PowerShell.

Flusso di lavoro di distribuzione della VM

Il flusso di lavoro di distribuzione generale della distribuzione della macchina virtuale è il seguente:

  1. Connettersi all'istanza locale di Azure Resource Manager del dispositivo.
  2. Identificare la sottoscrizione predefinita nel dispositivo.
  3. Portare l'immagine della macchina virtuale.
  4. Creare un gruppo di risorse nella sottoscrizione predefinita. Il gruppo di risorse contiene la macchina virtuale e tutte le risorse correlate.
  5. Creare un account di archiviazione locale nel dispositivo per archiviare il disco rigido virtuale usato per creare un'immagine di macchina virtuale.
  6. Caricare un'immagine di origine Windows/Linux nell'account di archiviazione per creare un disco gestito.
  7. Usare il disco gestito per creare un'immagine di macchina virtuale.
  8. Abilitare il calcolo su una porta del dispositivo per creare un commutatore virtuale.
  9. Verrà creata una rete virtuale usando il commutatore virtuale collegato alla porta in cui è stato abilitato il calcolo.
  10. Creare una macchina virtuale usando l'immagine della macchina virtuale creata in precedenza, la rete virtuale e le interfacce di rete virtuale per comunicare all'interno della rete virtuale e assegnare un indirizzo IP pubblico per accedere in remoto alla macchina virtuale. Facoltativamente, includere dischi dati per fornire più spazio di archiviazione per la macchina virtuale.

Prerequisiti

Prima di poter distribuire macchine virtuali nel dispositivo Azure Stack Edge, è necessario configurare il client per la connessione al dispositivo tramite Azure Resource Manager tramite Azure PowerShell. Per istruzioni dettagliate, vedere Connettersi ad Azure Resource Manager nel dispositivo Azure Stack Edge.

Assicurarsi di poter usare la procedura seguente per accedere al dispositivo dal client. Questa configurazione è già stata eseguita quando si è connessi ad Azure Resource Manager e ora si verifica che la configurazione sia stata completata correttamente.

  1. Verificare che la comunicazione di Azure Resource Manager funzioni eseguendo il comando seguente:

    Add-AzEnvironment -Name <Environment Name> -ARMEndpoint "https://management.<appliance name>.<DNSDomain>"
    
  2. Per chiamare le API del dispositivo locale per l'autenticazione, immettere:

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

    Per connettersi tramite Azure Resource Manager, specificare il nome utente EdgeArmUser e la password.

  3. Se è stato configurato il calcolo per Kubernetes, è possibile ignorare questo passaggio. In caso contrario, assicurarsi di aver abilitato un'interfaccia di rete per il calcolo eseguendo le operazioni seguenti:

    a. Nell'interfaccia utente locale passare a Impostazioni di calcolo .
    b. Selezionare l'interfaccia di rete da usare per creare un commutatore virtuale. Le macchine virtuali create verranno collegate a un commutatore virtuale collegato a questa porta e alla rete associata. Assicurarsi di scegliere una rete corrispondente all'indirizzo IP che verrà usato per la macchina virtuale.

    Screenshot del riquadro Impostazioni di rete di configurazione calcolo.

    c. In Abilita per il calcolo nell'interfaccia di rete selezionare . Azure Stack Edge creerà e gestirà un commutatore virtuale che corrisponde a tale interfaccia di rete. Non immettere indirizzi IP specifici per Kubernetes in questo momento. L'abilitazione del calcolo può richiedere alcuni minuti.

    Nota

    Se si creano macchine virtuali GPU, selezionare un'interfaccia di rete connessa a Internet. In questo modo è possibile installare un'estensione GPU nel dispositivo.

Eseguire una query per una sottoscrizione predefinita nel dispositivo

Per Azure Resource Manager è supportata solo una singola sottoscrizione fissa visibile dall'utente. Questa sottoscrizione è univoca per dispositivo e il nome della sottoscrizione e l'ID sottoscrizione non possono essere modificati.

La sottoscrizione contiene tutte le risorse necessarie per la creazione di macchine virtuali.

Importante

La sottoscrizione viene creata quando si abilitano le macchine virtuali dal portale di Azure e si trova in locale nel dispositivo.

La sottoscrizione viene usata per distribuire le macchine virtuali.

  1. Per elencare la sottoscrizione, eseguire il comando seguente:

    Get-AzSubscription
    

    Ecco un esempio di output:

    PS C:\WINDOWS\system32> Get-AzSubscription
    
    Name                          Id                                   TenantId
    ----                          --                                   --------
    Default Provider Subscription ...                                  ...
    
    
    PS C:\WINDOWS\system32>
    
  2. Ottenere un elenco dei provider di risorse registrati in esecuzione nel dispositivo. L'elenco include in genere calcolo, rete e archiviazione.

    Get-AzResourceProvider
    

    Nota

    I provider di risorse sono preregistrati e non possono essere modificati o modificati.

    Ecco un esempio di output:

    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>
    

Creare un gruppo di risorse

Per iniziare, creare un nuovo gruppo di risorse di Azure e usarlo come contenitore logico per tutte le risorse correlate alla macchina virtuale, ad esempio l'account di archiviazione, il disco, l'interfaccia di rete e il disco gestito.

Importante

Tutte le risorse vengono create nella stessa posizione del dispositivo e la posizione è impostata su DBELocal.

  1. Impostare alcuni parametri.

    $ResourceGroupName = "<Resource group name>" 
    
  2. Creare un gruppo di risorse per le risorse create per la macchina virtuale.

    New-AzResourceGroup -Name $ResourceGroupName -Location DBELocal
    

    Ecco un esempio di output:

    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>
    

Creare un account di archiviazione locale

Creare un nuovo account di archiviazione locale usando un gruppo di risorse esistente. Usare questo account di archiviazione locale per caricare l'immagine del disco virtuale durante la creazione di una macchina virtuale.

Prima di creare un account di archiviazione locale, è necessario configurare il client per connettersi al dispositivo tramite Azure Resource Manager tramite Azure PowerShell. Per istruzioni dettagliate, vedere Connettersi ad Azure Resource Manager nel dispositivo Azure Stack Edge.

  1. Impostare alcuni parametri.

    $StorageAccountName = "<Storage account name>"    
    
  2. Creare un nuovo account di archiviazione locale nel dispositivo.

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

    Nota

    Usando Azure Resource Manager, è possibile creare solo account di archiviazione locali, ad esempio l'archiviazione con ridondanza locale (standard o Premium). Per creare account di archiviazione a livelli, vedere Esercitazione: Trasferire dati tramite account di archiviazione con Azure Stack Edge Pro con GPU.

    Ecco un output di esempio:

    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>
    

Per ottenere le chiavi di accesso per un account di archiviazione locale esistente creato, specificare il nome del gruppo di risorse associato e il nome dell'account di archiviazione locale.

Get-AzStorageAccountKey

Ecco un output di esempio:

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>

Aggiungere l'URI del BLOB al file host

È già stato aggiunto l'URI BLOB nel file hosts per il client usato per connettersi a Archiviazione BLOB di Azure in Modificare il file host per la risoluzione dei nomi dell'endpoint di Connessione ad Azure Resource Manager nel dispositivo Azure Stack Edge. Questa voce è stata usata per aggiungere l'URI del BLOB:

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

Installare i certificati

Se si usa HTTPS, è necessario installare i certificati appropriati nel dispositivo. In questo caso si installa il certificato dell'endpoint BLOB. Per altre informazioni, vedere Usare i certificati con Azure Stack Edge Pro con il dispositivo GPU.

Caricare un VHD

Copiare le immagini del disco da usare nei BLOB di pagine nell'account di archiviazione locale creato in precedenza. È possibile usare uno strumento come AzCopy per caricare il disco rigido virtuale (VHD) nell'account di archiviazione.

Usare i comandi seguenti con AzCopy 10:

  1. Impostare alcuni parametri, inclusa la versione appropriata delle API per AzCopy. In questo esempio è stato usato AzCopy 10.

    $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. Copiare il disco rigido virtuale dall'origine (in questo caso, sistema locale) all'account di archiviazione creato nel dispositivo nel passaggio precedente.

    $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"    
    

    Ecco un output di esempio:

    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
    

Creare un disco gestito dal disco rigido virtuale

Creare un disco gestito dal disco rigido virtuale caricato.

  1. Impostare alcuni parametri.

    $DiskName = "<Managed disk name>"
    $HyperVGeneration = "<Generation of the image: V1 or V2>"
    
  2. Creare un disco gestito dal disco rigido virtuale caricato. Per ottenere l'URL di origine per il disco rigido virtuale, passare al contenitore nell'account di archiviazione che contiene il disco rigido virtuale in Storage Explorer. Selezionare il disco rigido virtuale e fare clic con il pulsante destro del mouse e quindi scegliere Proprietà. Nella finestra di dialogo Proprietà BLOB selezionare l'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
    

    Ecco un esempio di output:.

    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>
    

Creare un'immagine di macchina virtuale dal disco gestito

A questo punto si creerà un'immagine di macchina virtuale dal disco gestito.

  1. Impostare alcuni parametri.

    $DiskSize = "<Size greater than or equal to size of source managed disk>"
    $OsType = "<linux or windows>" 
    $ImageName = "<Image name>"
    
  2. Creare un'immagine di macchina virtuale. I tipi di sistema operativo supportati sono 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  
    

    Ecco un esempio di output.

    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> 
    

Creare la macchina virtuale con risorse create in precedenza

Prima di creare e distribuire la macchina virtuale, è necessario creare una rete virtuale e associarvi un'interfaccia di rete virtuale.

Importante

Si applicano le seguenti regole:

  • È possibile creare una sola rete virtuale, anche tra gruppi di risorse. La rete virtuale deve avere esattamente lo stesso spazio di indirizzi della rete logica.
  • La rete virtuale può avere una sola subnet. La subnet deve avere esattamente lo stesso spazio indirizzi della rete virtuale.
  • Quando si crea la scheda di interfaccia di rete virtuale, è possibile usare solo il metodo di allocazione statica. L'utente deve fornire un indirizzo IP privato.

Eseguire una query sulla rete virtuale creata automaticamente

Quando si abilita il calcolo dall'interfaccia utente locale del dispositivo, viene creata automaticamente una rete virtuale denominata ASEVNET nel ASERG gruppo di risorse.

Usare il comando seguente per eseguire una query sulla rete virtuale esistente:

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

Creare una scheda di interfaccia di rete virtuale

Si crea una scheda di interfaccia di rete virtuale usando l'ID subnet della rete virtuale.

  1. Impostare alcuni parametri.

    $IpConfigName = "<IP config name>"
    $NicName = "<Network interface name>"
    
  2. Creare un'interfaccia di rete virtuale.

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

    Per impostazione predefinita, un INDIRIZZO IP viene assegnato dinamicamente all'interfaccia di rete dalla rete abilitata per il calcolo. Usare se -PrivateIpAddress parameter si sta allocando un indirizzo IP statico all'interfaccia di rete.

    Ecco un output di esempio:

    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>
    

Facoltativamente, durante la creazione di una scheda di interfaccia di rete virtuale per una macchina virtuale, è possibile passare l'indirizzo IP pubblico. In questo caso, l'indirizzo IP pubblico restituisce l'indirizzo IP privato.

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

Creazione di una macchina virtuale

È ora possibile usare l'immagine della macchina virtuale per creare una macchina virtuale e collegarla alla rete virtuale creata in precedenza.

  1. Impostare il nome utente e la password per accedere alla macchina virtuale da creare.

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

    Dopo aver creato e alimentato la macchina virtuale, usare il nome utente e la password precedenti per accedervi.

  2. Impostare i parametri.

    $VmName = "<VM name>"
    $ComputerName = "<VM display name>"
    $OsDiskName = "<OS disk name>"
    
  3. Creare la macchina virtuale.

    $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
    

    Ecco un esempio di output.

    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. Per determinare l'indirizzo IP assegnato alla macchina virtuale creata, eseguire una query sull'interfaccia di rete virtuale creata. PrivateIPAddress Individuare e copiare l'INDIRIZZO IP per la macchina virtuale. Ecco un esempio di output.

    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>
    

Connettersi alla macchina virtuale

A seconda che sia stata creata una macchina virtuale Windows o una macchina virtuale Linux, le istruzioni di connessione possono essere diverse.

Connect to a Linux VM (Connettersi a una macchina virtuale Linux)

Per connettersi a una macchina virtuale Linux, eseguire le operazioni seguenti:

Connettersi alla macchina virtuale usando l'indirizzo IP privato passato durante la creazione della macchina virtuale.

  1. Aprire una sessione SSH per connettersi con l'indirizzo IP.

    ssh -l <username> <ip address>
    
  2. Al prompt specificare la password usata al momento della creazione della macchina virtuale.

    Se è necessario specificare la chiave SSH, usare questo comando.

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

    Ecco un output di esempio quando ci si connette alla macchina virtuale:

    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 durante la creazione della macchina virtuale è stato usato un indirizzo IP pubblico, è possibile usare tale indirizzo IP per connettersi alla macchina virtuale. Per ottenere l'indirizzo IP pubblico, eseguire il comando seguente:

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

In questo caso, l'indirizzo IP pubblico corrisponde all'indirizzo IP privato passato durante la creazione dell'interfaccia di rete virtuale.

Connettersi a una VM Windows

Per connettersi a una macchina virtuale Windows, eseguire le operazioni seguenti:

Connettersi alla macchina virtuale Windows usando Remote Desktop Protocol (RDP) tramite l'INDIRIZZO IP passato durante la creazione della macchina virtuale.

  1. Nel client aprire RDP.

  2. Passare a Start e quindi immettere mstsc.

  3. Nel riquadro Connessione Desktop remoto immettere l'indirizzo IP della macchina virtuale e le credenziali di accesso usate nel file dei parametri del modello di macchina virtuale. Selezionare Connetti.

    Screenshot del riquadro Connessione Desktop remoto per la connessione tramite RDP alla macchina virtuale Windows.

    Nota

    Potrebbe essere necessario approvare la connessione a un computer non attendibile.

È stato eseguito l'accesso alla macchina virtuale in esecuzione nell'appliance.

Gestire la macchina virtuale

Le sezioni seguenti descrivono alcune delle operazioni comuni che è possibile creare nel dispositivo Azure Stack Edge Pro.

Elencare le macchine virtuali in esecuzione nel dispositivo

Per restituire un elenco di tutte le macchine virtuali in esecuzione nel dispositivo Azure Stack Edge, eseguire questo comando:

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

Per altre informazioni su questo cmdlet, vedere Get-AzVM.

Attivare la macchina virtuale

Per attivare una macchina virtuale in esecuzione nel dispositivo, eseguire il cmdlet seguente:

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

Per altre informazioni su questo cmdlet, vedere Start-AzVM.

Sospendere o arrestare la macchina virtuale

Per arrestare o arrestare una macchina virtuale in esecuzione nel dispositivo, eseguire il cmdlet seguente:

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

Per altre informazioni su questo cmdlet, vedere Cmdlet Stop-AzVM.

Ridimensionare la VM

Per ridimensionare una macchina virtuale esistente, eseguire i cmdlet seguenti:

Importante

Prima di ridimensionarlo, arrestare la macchina virtuale senza il -StayProvisioned flag .

$vm = Get-AzVM [-Name] <String> [-ResourceGroupName] <String>

$vm.HardwareProfile.VmSize = <new size> - Example: "Standard_D3_v2"

$vm | Update-AzVM

Aggiungere un disco dati

Se i requisiti del carico di lavoro nella macchina virtuale aumentano, potrebbe essere necessario aggiungere un disco dati. A tale scopo, eseguire il comando seguente:

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

Eliminare la macchina virtuale

Per rimuovere una macchina virtuale dal dispositivo, eseguire il cmdlet seguente:

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

Per altre informazioni su questo cmdlet, vedere Cmdlet Remove-AzVm.

Passaggi successivi

Cmdlet di Azure Resource Manager