Esercizio - Creare una risorsa di Azure in modo interattivo con Azure PowerShell
Nello scenario originale è necessario creare macchine virtuali (VM) per testare software CRM (Customer Relationship Management). Quando è disponibile una nuova build, si vuole creare rapidamente una nuova macchina virtuale per testare l'esperienza di installazione completa da un'immagine pulita. Al termine del test, è possibile eliminare la macchina virtuale.
Si proveranno ora i comandi per creare una macchina virtuale.
Annotazioni
Questo esercizio è facoltativo. Se si vuole completare questo esercizio, è necessario creare una sottoscrizione di Azure prima di iniziare. Se non si ha un account Azure o non si vuole crearne uno in questo momento, è possibile leggere le istruzioni in modo da comprendere le informazioni presentate.
Annotazioni
Per completare i passaggi di questo esercizio, è necessario usare un gruppo di risorse. È possibile usare un gruppo di risorse già creato oppure creare un nuovo gruppo di risorse specifico per questo esercizio. Se si sceglie di creare un nuovo gruppo di risorse, sarà più semplice pulire le risorse create durante l'esercizio. Se non si ha un gruppo di risorse esistente o si vuole crearne uno nuovo in particolare per questo esercizio, è possibile seguire la procedura descritta in Usare il portale di Azure e Azure Resource Manager per gestire i gruppi di risorse per creare un gruppo di risorse usando il portale di Azure oppure seguire la procedura descritta in Gestire i gruppi di risorse di Azure usando l'interfaccia della riga di comando di Azure per creare un gruppo di risorse usando l'interfaccia della riga di comando di Azure.
Creare una macchina virtuale Linux con Azure PowerShell
Ecco come creare una nuova macchina virtuale di Azure con Azure PowerShell:
Usare il cmdlet
New-AzVMper creare la macchina virtuale.- Specificare il gruppo di risorse per la macchina virtuale.
- Denominare la macchina virtuale, seguendo gli standard di denominazione dell'organizzazione.
- Scegliere una località vicina all'utente dall'elenco delle aree di Azure disponibili.
- Usare l'immagine Ubuntu Linux:
Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest. - Usare il cmdlet
Get-Credentialper impostare le credenziali di amministratore della macchina virtuale. - Aggiungere il parametro OpenPorts con la porta
22per l'accesso SSH. - Creare un nome di indirizzo IP pubblico per l’accesso SSH.
$azVmParams = @{ ResourceGroupName = 'myResourceGroupName' Name = 'testvm-eus-01' Credential = (Get-Credential) Location = 'eastus' Image = 'Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest' OpenPorts = 22 PublicIpAddressName = 'testvm-eus-01' } New-AzVm @azVmParamsSostituire myResourceGroupName nell'esempio precedente con il nome di un gruppo di risorse esistente o il nome del gruppo di risorse creato per questo esercizio.
Suggerimento
È possibile usare il pulsante Copia per copiare i comandi negli Appunti. Per incollare, fare clic con il pulsante destro del mouse su una nuova riga nel terminale di Cloud Shell e scegliere Incolla oppure usare il tasto di scelta rapida MAIUSC+Inserisci (⌘+V in macOS).
Immettere le credenziali:
Quando richiesto, immettere un nome utente e una password, seguendo le linee guida, ovvero le password devono avere una lunghezza compresa tra 12 e 123 caratteri e soddisfare tre dei quattro requisiti di complessità seguenti: caratteri minuscoli, caratteri maiuscoli, cifre e caratteri speciali (corrispondenza Regex [\W_]). Per altre informazioni, vedere Domande frequenti sulle macchine virtuali Linux.
Attendere la creazione della macchina virtuale:
Il processo di creazione della macchina virtuale richiede alcuni minuti.
Eseguire una query sulla macchina virtuale:
Al termine, eseguire una query sulla macchina virtuale e assegnare l'oggetto macchina virtuale a una variabile (
$vm).$vm = Get-AzVM -Name testvm-eus-01 -ResourceGroupName myResourceGroupNameVisualizzare informazioni relative alla macchina virtuale:
Per vedere le informazioni sulla macchina virtuale, visualizzare il contenuto della variabile.
$vmOutput di esempio:
ResourceGroupName : myResourceGroupName Id : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/testvm-eus-01 VmId : 00000000-0000-0000-0000-000000000000 Name : testvm-eus-01 Type : Microsoft.Compute/virtualMachines Location : eastus Tags : {} HardwareProfile : {VmSize} NetworkProfile : {NetworkInterfaces} OSProfile : {ComputerName, AdminUsername, LinuxConfiguration, Secrets} ProvisioningState : Succeeded StorageProfile : {ImageReference, OsDisk, DataDisks} ...Ispezionare le proprietà della macchina virtuale:
È possibile ispezionare oggetti complessi tramite l'operatore di accesso ai membri (
.). Ad esempio, per visualizzare le proprietà nell'oggettoVMSizeassociato alla sezione HardwareProfile , eseguire il comando seguente:$vm.HardwareProfileOppure, per ottenere informazioni su uno dei dischi, eseguire il comando seguente:
$vm.StorageProfile.OsDiskOttenere le dimensioni della macchina virtuale disponibili:
Passare l'oggetto Macchina virtuale in altri cmdlet per ottenere le dimensioni disponibili:
$vm | Get-AzVMSizeOttenere l'indirizzo IP pubblico:
Recuperare l'indirizzo IP pubblico per connettersi alla macchina virtuale e archiviarlo in una variabile.
$ip = Get-AzPublicIpAddress -ResourceGroupName myResourceGroupName -Name testvm-eus-01Connettersi alla macchina virtuale:
Connettersi alla macchina virtuale con SSH usando l'indirizzo IP della variabile. Ad esempio, se il nome utente è
bob, usare il comando seguente:ssh bob@$($ip.IpAddress)Disconnettersi digitando exit.
Eliminare una macchina virtuale
Per provare altri comandi, eliminare la macchina virtuale. Seguire questa procedura:
Arrestare la macchina virtuale:
Eseguire il comando seguente:
Stop-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupNameImmettere Y e premere INVIO quando viene richiesto di continuare.
Eliminare la macchina virtuale:
Una volta arrestata la macchina virtuale, eliminarla eseguendo il cmdlet
Remove-AzVM.Remove-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupNameImmettere Y e premere INVIO quando viene richiesto di continuare.
Elencare tutte le risorse nel gruppo di risorse:
Usare il cmdlet
Get-AzResourceper elencare tutte le risorse nel gruppo di risorse. I risultati vengono inviati tramite pipe aSelect-Objectper restituire proprietà specifiche:Get-AzResource -ResourceGroupName $vm.ResourceGroupName | Select-Object -Property Name, ResourceType, ResourceGroupNameVerranno visualizzate diverse risorse, tra cui dischi, reti virtuali ecc. ancora esistenti:
Name ResourceType ResourceGroupName ---- ------------ ----------------- cloudshell Microsoft.Storage/storageAccounts myResourceGroupName testvm-eus-01 Microsoft.Network/virtualNetworks myResourceGroupName testvm-eus-01 Microsoft.Network/publicIPAddresses myResourceGroupName testvm-eus-01 Microsoft.Network/networkSecurityGroups myResourceGroupName testvm-eus-01 Microsoft.Network/networkInterfaces myResourceGroupName testvm-eus-01_OsDisk_1 Microsoft.Compute/disks myResourceGroupNameIl comando
Remove-AzVMelimina solo la macchina virtuale. e non pulisce tutte le altre risorse. Per pulirli manualmente, seguire questa procedura:Eliminare l'interfaccia di rete:
Get-AzNetworkInterface -ResourceGroupName $vm.ResourceGroupName -Name $vm.Name | Remove-AzNetworkInterfaceImmettere Y e premere INVIO quando viene richiesto di continuare.
Eliminare il gruppo di sicurezza di rete:
Get-AzNetworkSecurityGroup -ResourceGroupName $vm.ResourceGroupName | Remove-AzNetworkSecurityGroupImmettere Y e premere INVIO quando viene richiesto di continuare.
Eliminare l'indirizzo IP pubblico:
Get-AzPublicIpAddress -ResourceGroupName $vm.ResourceGroupName | Remove-AzPublicIpAddressImmettere Y e premere INVIO quando viene richiesto di continuare.
Eliminare la rete virtuale:
Get-AzVirtualNetwork -ResourceGroupName $vm.ResourceGroupName | Remove-AzVirtualNetworkImmettere Y e premere INVIO quando viene richiesto di continuare.
Eliminare i dischi del sistema operativo gestiti:
Get-AzDisk -ResourceGroupName $vm.ResourceGroupName -DiskName $vm.StorageProfile.OSDisk.Name | Remove-AzDiskImmettere Y e premere INVIO quando viene richiesto di continuare.
Verificare che tutte le risorse siano state rimosse:
Controllare il gruppo di risorse per verificare che tutte le risorse siano state rimosse:
Get-AzResource -ResourceGroupName $vm.ResourceGroupName | Select-Object -Property Name, ResourceType, ResourceGroupName
Durante l'esecuzione interattiva di questi comandi, un approccio migliore consiste nella scrittura di uno script di PowerShell. Gli script consentono di riutilizzare la logica per la creazione o l'eliminazione di una macchina virtuale in futuro
Si esaminerà ora come automatizzare queste attività usando uno script di PowerShell.