Creare macchine virtuali con Azure PowerShell
In questa esercitazione vengono illustrati tutti i passaggi necessari per configurare una macchina virtuale con Azure PowerShell. L'esercitazione illustra anche le query di output, il riutilizzo delle risorse di Azure e la pulizia delle risorse.
Questa esercitazione può essere completata con l'esperienza interattiva offerta tramite Azure Cloud Shell oppure è possibile installare Azure PowerShell in locale.
Usare ctrl-maiusc-v (cmd-shift-v in macOS) per incollare il testo dell'esercitazione in Azure Cloud Shell.
Accedi
Se si usa un'installazione locale di Azure PowerShell, è necessario eseguire l'accesso prima di eseguire altri passaggi.
Connect-AzAccount
Completare il processo di accesso seguendo i passaggi visualizzati nel terminale.
Creare un gruppo di risorse
In Azure tutte le risorse vengono allocate in un gruppo di gestione delle risorse. I gruppi di risorse forniscono raggruppamenti logici di risorse che semplificano l'uso di come raccolta.
Per questa esercitazione, tutte le risorse create vengono inserite in un singolo gruppo denominato TutorialResources
.
New-AzResourceGroup -Name TutorialResources -Location eastus
ResourceGroupName : TutorialResources
Location : eastus
ProvisioningState : Succeeded
Tags :
ResourceId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TutorialResources
Creare credenziali di amministratore per la macchina virtuale
Prima di poter creare una nuova macchina virtuale, è necessario creare un oggetto credenziale contenente il nome utente e la password per l'account amministratore della macchina virtuale Windows.
$cred = Get-Credential -Message "Enter a username and password for the virtual machine."
Immettere il nome utente e la password quando richiesto. L'oggetto credenziale risultante viene passato come parametro nel passaggio successivo.
Windows PowerShell credential request.
Enter a username and password for the virtual machine.
User: tutorAdmin
Password for user tutorAdmin: *********
Creare una macchina virtuale
Le macchine virtuali in Azure hanno un numero elevato di dipendenze. Azure PowerShell crea automaticamente queste risorse in base agli argomenti della riga di comando specificati. Per la leggibilità, viene usato di splatting di PowerShell per passare i parametri ai cmdlet di Azure PowerShell.
Creare una nuova macchina virtuale che esegue Windows.
$vmParams = @{
ResourceGroupName = 'TutorialResources'
Name = 'TutorialVM1'
Location = 'eastus'
ImageName = 'Win2016Datacenter'
PublicIpAddressName = 'tutorialPublicIp'
Credential = $cred
OpenPorts = 3389
Size = 'Standard_D2s_v3'
}
$newVM1 = New-AzVM @vmParams
Quando viene creata la macchina virtuale, vengono visualizzati i valori dei parametri usati e le risorse di Azure create. PowerShell visualizzerà una barra di stato come illustrato di seguito.
Creating Azure resources
39% \
[ooooooooooooooooooooooooooooooooooo ]
Creating TutorialVM1 virtual machine.
Quando la macchina virtuale è pronta, è possibile visualizzare i risultati nel portale di Azure o esaminando la variabile $newVM1
.
$newVM1
ResourceGroupName : TutorialResources
Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TutorialResources/providers/Microsoft.Compute/virtualMachines/TutorialVM1
VmId : 00000000-0000-0000-0000-000000000000
Name : TutorialVM1
Type : Microsoft.Compute/virtualMachines
Location : eastus
Tags : {}
HardwareProfile : {VmSize}
NetworkProfile : {NetworkInterfaces}
OSProfile : {ComputerName, AdminUsername, WindowsConfiguration, Secrets}
ProvisioningState : Succeeded
StorageProfile : {ImageReference, OsDisk, DataDisks}
I valori delle proprietà elencati all'interno delle parentesi graffe sono oggetti annidati. Nel passaggio successivo verrà illustrato come visualizzare valori specifici in questi oggetti annidati.
Ottenere informazioni sulla macchina virtuale con query
È possibile ottenere informazioni più dettagliate dalla macchina virtuale appena creata. In questo esempio viene verificato il nome della macchina virtuale e l'account amministratore creato.
$newVM1.OSProfile | Select-Object -Property ComputerName, AdminUserName
ComputerName AdminUsername
------------ -------------
TutorialVM1 tutorialAdmin
È possibile usare altri comandi di Azure PowerShell per ottenere informazioni specifiche sulla configurazione di rete.
$newVM1 | Get-AzNetworkInterface |
Select-Object -ExpandProperty IpConfigurations |
Select-Object -Property Name, PrivateIpAddress
In questo esempio viene usata la pipeline di PowerShell per inviare l'oggetto $newVM 1 al cmdlet Get-AzNetworkInterface
. Dall'oggetto interfaccia di rete risultante si seleziona l'oggetto IpConfigurations annidato. Dall'oggetto IpConfigurations si selezionano le proprietà Name e PrivateIpAddress.
Name PrivateIpAddress
---- ----------------
TutorialVM1 192.168.1.4
Per verificare che la macchina virtuale sia in esecuzione, è necessario connettersi tramite Desktop remoto. Per questo, è necessario conoscere l'indirizzo IP pubblico.
$publicIp = Get-AzPublicIpAddress -Name tutorialPublicIp -ResourceGroupName TutorialResources
$publicIp |
Select-Object -Property Name, IpAddress, @{label='FQDN';expression={$_.DnsSettings.Fqdn}}
In questo esempio si usa il Get-AzPublicIpAddress
e si archiviano i risultati nella variabile $publicIp
. Da questa variabile si selezionano le proprietà e si usa un'espressione per recuperare la proprietà Fqdn annidata.
Name IpAddress FQDN
---- --------- ----
tutorialPublicIp <PUBLIC_IP_ADDRESS> tutorialvm1-8a0999.eastus.cloudapp.azure.com
Dal computer locale è possibile eseguire il comando seguente per connettersi alla macchina virtuale tramite Desktop remoto.
mstsc.exe /v $publicIp.IpAddress
Per altre informazioni sull'esecuzione di query per le proprietà degli oggetti, vedere Query per le risorse di Azure.
Creazione di una nuova macchina virtuale nella subnet esistente
La seconda macchina virtuale usa la subnet esistente.
$vm2Params = @{
ResourceGroupName = 'TutorialResources'
Name = 'TutorialVM2'
ImageName = 'Win2016Datacenter'
VirtualNetworkName = 'TutorialVM1'
SubnetName = 'TutorialVM1'
PublicIpAddressName = 'tutorialPublicIp2'
Credential = $cred
OpenPorts = 3389
}
$newVM2 = New-AzVM @vm2Params
$newVM2
ResourceGroupName : TutorialResources
Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TutorialResources/providers/Microsoft.Compute/virtualMachines/TutorialVM2
VmId : 00000000-0000-0000-0000-000000000000
Name : TutorialVM2
Type : Microsoft.Compute/virtualMachines
Location : eastus
Tags : {}
HardwareProfile : {VmSize}
NetworkProfile : {NetworkInterfaces}
OSProfile : {ComputerName, AdminUsername, WindowsConfiguration, Secrets}
ProvisioningState : Succeeded
StorageProfile : {ImageReference, OsDisk, DataDisks}
FullyQualifiedDomainName : tutorialvm2-dfa5af.eastus.cloudapp.azure.com
È possibile ignorare alcuni passaggi per ottenere l'indirizzo IP pubblico della nuova macchina virtuale perché viene restituito nella proprietà FullyQualifiedDomainName dell'oggetto $newVM2
. Usare il comando seguente per connettersi tramite Desktop remoto.
mstsc.exe /v $newVM2.FullyQualifiedDomainName
Pulizia
Ora che l'esercitazione è stata completata, è possibile pulire le risorse create. È possibile eliminare singole risorse con il comando Remove-AzResource
, ma il modo più sicuro per rimuovere tutte le risorse in un gruppo di risorse consiste nell'eliminare il gruppo usando il comando Remove-AzResourceGroup
.
$job = Remove-AzResourceGroup -Name TutorialResources -Force -AsJob
$job
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
1 Long Running... AzureLongRun... Running True localhost Remove-AzResource...
Questo comando elimina le risorse create durante l'esercitazione ed è garantito di deallocarle nell'ordine corretto. Il parametro AsJob
impedisce a PowerShell di bloccare mentre viene eseguita l'eliminazione. Per attendere il completamento dell'eliminazione, usare il comando seguente:
Wait-Job -Id $job.Id
Al termine della pulizia, l'esercitazione è stata completata. Continuare per un riepilogo di tutti gli elementi appresi e i collegamenti alle risorse che consentiranno di eseguire i passaggi successivi.
Sommario
Felicitazioni! Si è appreso come creare macchine virtuali con risorse nuove o esistenti, usare espressioni e altri comandi di Azure PowerShell per acquisire i dati da archiviare nelle variabili della shell ed esaminare alcune delle risorse create per le macchine virtuali di Azure.
Il percorso da qui dipende dal modo in cui si prevede di usare Azure PowerShell. In questa esercitazione sono disponibili diversi materiali che illustrano in modo approfondito le funzionalità descritte in questa esercitazione.
Documentazione approfondita di Azure PowerShell
Potrebbe essere necessario dedicare tempo per esplorare il set di
Per altre informazioni sui comandi usati in questa esercitazione, vedere gli articoli seguenti.
- New-AzResourceGroup
- get-credential
- New-AzVM
- Select-Object
- Get-AzPublicIpAddress
- Remove-AzResourceGroup
- wait-job
Sono disponibili anche articoli più approfonditi sulle funzionalità illustrate nell'esercitazione.
- di splatting di PowerShell
- query
- formattazione
- Uso di processi di PowerShell
Script di esempio
Per iniziare subito con attività specifiche, esaminare alcuni script di esempio.
- servizio app di Azure
- database SQL di
- cosmos DB
- repository di esempi
Valutazione
Se vuoi inviare commenti e suggerimenti o porre domande, esistono diversi modi per entrare in contatto.
-
Send-Feedback
è un comando predefinito per Azure PowerShell che consente di fornire commenti e suggerimenti in formato libero al team. - Inviare una richiesta di funzionalità o un report di bug nel repository di Azure PowerShell .
- Porre una domanda o ottenere chiarimenti inviando un problema nel repository della documentazione di Azure PowerShell .
Ci auguriamo che sia possibile usare Azure PowerShell.
Hai un problema con questa sezione? In caso di problemi, fornisci feedback per contribuire al miglioramento della sezione.