Distribuire macchine virtuali nel dispositivo Azure Stack Edge tramite Azure PowerShell
SI APPLICA A: Azure Stack Edge Pro - GPUAzure Stack Edge Pro 2Azure Stack Edge Pro RAzure 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:
- Connettersi all'istanza locale di Azure Resource Manager del dispositivo.
- Identificare la sottoscrizione predefinita nel dispositivo.
- Portare l'immagine della macchina virtuale.
- Creare un gruppo di risorse nella sottoscrizione predefinita. Il gruppo di risorse contiene la macchina virtuale e tutte le risorse correlate.
- Creare un account di archiviazione locale nel dispositivo per archiviare il disco rigido virtuale usato per creare un'immagine di macchina virtuale.
- Caricare un'immagine di origine Windows/Linux nell'account di archiviazione per creare un disco gestito.
- Usare il disco gestito per creare un'immagine di macchina virtuale.
- Abilitare il calcolo su una porta del dispositivo per creare un commutatore virtuale.
- Verrà creata una rete virtuale usando il commutatore virtuale collegato alla porta in cui è stato abilitato il calcolo.
- 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.
Verificare che la comunicazione di Azure Resource Manager funzioni eseguendo il comando seguente:
Add-AzEnvironment -Name <Environment Name> -ARMEndpoint "https://management.<appliance name>.<DNSDomain>"
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.
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.c. In Abilita per il calcolo nell'interfaccia di rete selezionare Sì. 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.
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>
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.
Impostare alcuni parametri.
$ResourceGroupName = "<Resource group name>"
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.
Impostare alcuni parametri.
$StorageAccountName = "<Storage account name>"
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:
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>
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.
Impostare alcuni parametri.
$DiskName = "<Managed disk name>" $HyperVGeneration = "<Generation of the image: V1 or V2>"
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.
Impostare alcuni parametri.
$DiskSize = "<Size greater than or equal to size of source managed disk>" $OsType = "<linux or windows>" $ImageName = "<Image name>"
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.
Impostare alcuni parametri.
$IpConfigName = "<IP config name>" $NicName = "<Network interface name>"
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.
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.
Impostare i parametri.
$VmName = "<VM name>" $ComputerName = "<VM display name>" $OsDiskName = "<OS disk name>"
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
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.
Aprire una sessione SSH per connettersi con l'indirizzo IP.
ssh -l <username> <ip address>
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.
Nel client aprire RDP.
Passare a Start e quindi immettere mstsc.
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.
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.