Übung: Interaktives Erstellen einer Azure-Ressource mit Azure PowerShell
Im ursprünglichen Szenario müssen Sie VMs erstellen, um die CRM-Software (Customer Relationship Management) zu testen. Wenn ein neuer Build verfügbar ist, möchten Sie eine neue VM einrichten, damit Sie die gesamte Installation anhand eines sauberen Images testen können. Nach Abschluss des Tests können Sie die VM löschen.
Jetzt probieren wir die Befehle aus, um eine VM zu erstellen.
Erstellen einer Linux-VM mithilfe von Azure PowerShell
Da Sie die Azure-Sandbox verwenden, müssen Sie keine Ressourcengruppe erstellen. Verwenden Sie stattdessen die vorhandene Sandboxressourcengruppe
Hier erfahren Sie, wie Sie eine neue Azure-VM mit Azure PowerShell erstellen:
Verwenden Sie das
New-AzVM
-Cmdlet zum Erstellen der VM.Geben Sie die Sandboxressourcengruppe
Name der Sandboxressourcengruppe an.Benennen Sie die VM gemäß den Benennungsstandards Ihrer Organisation.
Wählen Sie einen Standort in der Nähe von Ihnen aus der Liste der verfügbaren Azure-Sandboxstandorte aus.
- westus2
- southcentralus
- centralus
- eastus
- westeurope
- southeastasia
- japaneast
- brazilsouth
- australiasoutheast
- centralindia
Verwenden Sie das Ubuntu Linux-Image
Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest
.Verwenden Sie das Cmdlet
Get-Credential
, um die Anmeldeinformationen des VM-Administrators festzulegen.Fügen Sie den OpenPorts-Parameter mit Port
22
für den SSH-Zugriff hinzu.Erstellen Sie einen Namen für eine öffentliche IP-Adresse für die SSH-Anmeldung.
$azVmParams = @{ ResourceGroupName = '<rgn>[sandbox resource group name]</rgn>' 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 @azVmParams
Tipp
Mit der Schaltfläche Kopieren können Sie Befehle in die Zwischenablage kopieren. Klicken Sie zum Einfügen im Cloud Shell-Terminal mit der rechten Maustaste auf eine neue Zeile, und wählen Sie dann Einfügen aus, oder verwenden Sie die Tastenkombination UMSCHALT+EINFG (⌘+V unter macOS).
Geben Sie Anmeldeinformationen ein:
Geben Sie bei entsprechender Aufforderung einen Benutzernamen und ein Kennwort gemäß den folgenden Richtlinien ein: Kennwörter müssen 12 bis 123 Zeichen lang sein und drei der folgenden vier Komplexitätsanforderungen erfüllen: Kleinbuchstaben, Großbuchstaben, Ziffern und Sonderzeichen (Übereinstimmung mit dem regulärem Ausdruck [\W_]). Weitere Informationen finden Sie unter Häufig gestellte Fragen zu virtuellen Linux-Computern.
Warten Sie auf die VM-Erstellung:
Der VM-Erstellungsprozess kann einige Minuten dauern.
Fragen Sie die Daten ab:
Fragen Sie nach Abschluss die VM ab, und weisen Sie das VM-Objekt einer Variablen (
$vm
) zu.$vm = Get-AzVM -Name testvm-eus-01 -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
Zeigen Sie Informationen zur VM an:
Um Informationen über die VM zu erhalten, zeigen Sie den Inhalt der Variablen an.
$vm
Beispielausgabe:
ResourceGroupName : <rgn>[sandbox resource group name]</rgn> Id : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/<rgn>[sandbox resource group name]</rgn>/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} ...
Überprüfen Sie die VM-Eigenschaften:
Sie können komplexe Objekte über den Memberzugriffsoperator (
.
) prüfen. Führen Sie den folgenden Befehl aus, um beispielsweise die Eigenschaften imVMSize
-Objekt anzuzeigen, das dem Abschnitt HardwareProfile zugeordnet ist.$vm.HardwareProfile
Alternativ können Sie den folgenden Befehl ausführen, um Informationen zu einem der Datenträger abzurufen:
$vm.StorageProfile.OsDisk
Rufen Sie die verfügbaren VM-Größen ab:
Übergeben Sie das VM-Objekt an andere Cmdlets, um verfügbare Größen abzurufen:
$vm | Get-AzVMSize
Rufen Sie die öffentliche IP-Adresse ab:
Rufen Sie die öffentliche IP-Adresse ab, um eine Verbindung mit der VM herzustellen und sie in einer Variablen zu speichern.
$ip = Get-AzPublicIpAddress -ResourceGroupName <rgn>[sandbox resource group name]</rgn> -Name testvm-eus-01
Stellen Sie eine Verbindung mit der VM her:
Stellen Sie eine SSH-Verbindung mit der VM mithilfe der IP-Adresse aus der Variablen her. Wenn der Benutzername beispielsweise
bob
ist, verwenden Sie den folgenden Befehl:ssh bob@$($ip.IpAddress)
Melden Sie sich ab, indem Sie exit eingeben.
Löschen einer VM
Löschen Sie die VM nun, um weitere Befehle auszuprobieren. Führen Sie folgende Schritte aus:
Fahren Sie die VM herunter:
Führen Sie den folgenden Befehl aus:
Stop-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName
Geben Sie bei entsprechender Aufforderung Y ein, und drücken Sie die EINGABETASTE, um den Vorgang fortzusetzen.
Löschen der virtuellen Maschine:
Wenn die VM beendet wurde, löschen Sie sie, indem Sie das
Remove-AzVM
-Cmdlet ausführen.Remove-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName
Geben Sie bei entsprechender Aufforderung Y ein, und drücken Sie die EINGABETASTE, um den Vorgang fortzusetzen.
Listen Sie alle Ressourcen in der Ressourcengruppe auf:
Verwenden Sie das Cmdlet
Get-AzResource
, um alle Ressourcen in der Ressourcengruppe aufzulisten. Die Ergebnisse werden anSelect-Object
weitergeleitet, um bestimmte Eigenschaften zurückzugeben:Get-AzResource -ResourceGroupName $vm.ResourceGroupName | Select-Object -Property Name, ResourceType, ResourceGroupName
Daraufhin sollten verschiedene Ressourcen (u. a. Datenträger und virtuelle Netzwerke) angezeigt werden, die noch vorhanden sind:
Name ResourceType ResourceGroupName ---- ------------ ----------------- cloudshell Microsoft.Storage/storageAccounts <rgn>[sandbox resource group name]</rgn> testvm-eus-01 Microsoft.Network/virtualNetworks <rgn>[sandbox resource group name]</rgn> testvm-eus-01 Microsoft.Network/publicIPAddresses <rgn>[sandbox resource group name]</rgn> testvm-eus-01 Microsoft.Network/networkSecurityGroups <rgn>[sandbox resource group name]</rgn> testvm-eus-01 Microsoft.Network/networkInterfaces <rgn>[sandbox resource group name]</rgn> testvm-eus-01_OsDisk_1 Microsoft.Compute/disks <rgn>[sandbox resource group name]</rgn>
Der Befehl
Remove-AzVM
löscht nur die VM. Andere Ressourcen werden hierdurch nicht gelöscht. Führen Sie die folgenden Schritte aus, um sie manuell zu bereinigen:Löschen Sie die Netzwerkschnittstelle:
Get-AzNetworkInterface -ResourceGroupName $vm.ResourceGroupName -Name $vm.Name | Remove-AzNetworkInterface
Geben Sie bei entsprechender Aufforderung Y ein, und drücken Sie die EINGABETASTE, um den Vorgang fortzusetzen.
Löschen Sie die Netzwerksicherheitsgruppe:
Get-AzNetworkSecurityGroup -ResourceGroupName $vm.ResourceGroupName | Remove-AzNetworkSecurityGroup
Geben Sie bei entsprechender Aufforderung Y ein, und drücken Sie die EINGABETASTE, um den Vorgang fortzusetzen.
Löschen Sie die öffentliche IP-Adresse:
Get-AzPublicIpAddress -ResourceGroupName $vm.ResourceGroupName | Remove-AzPublicIpAddress
Geben Sie bei entsprechender Aufforderung Y ein, und drücken Sie die EINGABETASTE, um den Vorgang fortzusetzen.
Löschen Sie das virtuelle Netzwerk:
Get-AzVirtualNetwork -ResourceGroupName $vm.ResourceGroupName | Remove-AzVirtualNetwork
Geben Sie bei entsprechender Aufforderung Y ein, und drücken Sie die EINGABETASTE, um den Vorgang fortzusetzen.
Löschen Sie die verwalteten Betriebssystemdatenträger:
Get-AzDisk -ResourceGroupName $vm.ResourceGroupName -DiskName $vm.StorageProfile.OSDisk.Name | Remove-AzDisk
Geben Sie bei entsprechender Aufforderung Y ein, und drücken Sie die EINGABETASTE, um den Vorgang fortzusetzen.
Überprüfen Sie, ob alle Ressourcen entfernt wurden:
Überprüfen Sie die Ressourcengruppe, um sicherzustellen, dass alle Ressourcen entfernt wurden:
Get-AzResource -ResourceGroupName $vm.ResourceGroupName | Select-Object -Property Name, ResourceType, ResourceGroupName
Sie diese Befehle interaktiv ausgeführt. Ein besserer Ansatz besteht darin, ein PowerShell-Skript zu schreiben. Skripts ermöglichen es Ihnen, die Logik zum Erstellen oder Löschen einer VM in Zukunft wiederzuverwenden.
Als Nächstes sehen wir uns an, wie diese Aufgaben mithilfe eines PowerShell-Skripts automatisiert werden.