Creare macchine virtuali con Azure PowerShell
In questa esercitazione si apprenderanno tutti i passaggi necessari per la configurazione di 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 disponibile tramite Azure Cloud Shell oppure è possibile installare Azure PowerShell in locale.
Usare CTRL+MAIUSC+V (CMD+MAIUSC+V in macOS) per incollare il testo dell'esercitazione in Azure Cloud Shell.
Accedere
Se si usa un'installazione locale di Azure PowerShell è necessario accedere prima di eseguire altri passaggi.
Connect-AzAccount
Completare la procedura di accesso seguendo le istruzioni visualizzate 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 offrono raggruppamenti logici di risorse che ne rendono più semplice l'uso come raccolta.
Per questa esercitazione, tutte le risorse create vengono inserite in un unico 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 le credenziali di amministratore per la macchina virtuale
Per potere creare una nuova macchina virtuale, è prima di tutto necessario creare un oggetto credenziali 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."
Quando richiesto, immettere il nome utente e la password. L'oggetto credenziali risultate 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 tali risorse in base agli argomenti della riga di comando specificati. Per migliorare la leggibilità viene usato lo 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. In PowerShell verrà visualizzato un indicatore di stato, come mostrato 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 controllando 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 di parentesi graffe sono oggetti annidati. Nel passaggio successivo verrà illustrato come visualizzare valori specifici in tali oggetti annidati.
Ottenere informazioni sulla VM con le query
È possibile ottenere informazioni più dettagliate dalla macchina virtuale appena creata. In questo esempio vengono verificati 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 $newVM1 al cmdlet Get-AzNetworkInterface
. Dall'oggetto interfaccia di rete risultante viene selezionato l'oggetto IpConfigurations annidato. Dall'oggetto IpConfigurations vengono selezionate le proprietà Name e PrivateIpAddress.
Name PrivateIpAddress
---- ----------------
TutorialVM1 192.168.1.4
Per assicurarsi che la macchina virtuale sia in esecuzione, è necessario connettersi tramite Desktop remoto. A questo scopo, è 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, viene usato il comando Get-AzPublicIpAddress
e i risultati vengono archiviati nella variabile $publicIp
. Da questa variabile vengono selezionate le proprietà e viene usata un'espressione per il recupero della 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 la connessione alla macchina virtuale tramite Desktop remoto.
mstsc.exe /v $publicIp.IpAddress
Per altre informazioni sull'esecuzione di query per le proprietà dell'oggetto, vedere Query per le risorse di Azure.
Creazione di una nuova macchina virtuale nella subnet esistente
La seconda VM 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 è stata completata l'esercitazione, eseguire la pulizia delle risorse create. È possibile eliminare le 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 tramite 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 e le dealloca nell'ordine corretto. Il parametro AsJob
impedisce a PowerShell di bloccarsi durante l'eliminazione. Per attendere fino al completamento dell'eliminazione, usare il comando seguente:
Wait-Job -Id $job.Id
Dopo aver completato la pulizia, l'esercitazione è terminata. Proseguire con un riepilogo di tutte le nozioni apprese e i collegamenti a risorse utili per i passaggi successivi.
Riepilogo
Complimenti. Si è appreso come creare macchine virtuali con risorse nuove o esistenti e come usare espressioni e altri comandi di Azure PowerShell per acquisire dati da archiviare nelle variabili shell. Sono state anche esaminate alcune delle risorse create per le macchine virtuali di Azure.
I passaggi successivi dipendono da dal modo in cui si prevede di usare Azure PowerShell. Sono disponibili molti documenti che offrono maggiori dettagli sulle funzionalità descritte in questa esercitazione.
Documentazione dettagliata di Azure PowerShell
È consigliabile esaminare il set completo della documentazione di Azure PowerShell.
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 anche disponibili argomenti che approfondiscono le funzionalità descritte nell'esercitazione.
Script di esempio
Se si vuole iniziare subito con attività specifiche, esaminare alcuni script di esempio.
Feedback
Sono disponibili molti modi per inviare commenti, suggerimenti o domande.
Send-Feedback
è un comando incorporato per Azure PowerShell che consente di inviare commenti e suggerimenti in formato libero al team.- Inviare una richiesta di funzionalità o un report sui bug nel repository di Azure PowerShell.
- Porre una domanda o ottenere chiarimenti inviando un problema nel repository relativo alla documentazione di Azure PowerShell.
Buon divertimento con Azure PowerShell.
Hai un problema con questa sezione? In caso di problemi, fornisci feedback per contribuire al miglioramento della sezione.