Övning – Skapa en Azure-resurs med skript i Azure PowerShell

Slutförd

Kom ihåg vårt ursprungliga scenario: skapa virtuella datorer för att testa vår CRM-programvara. När en ny version är tillgänglig vill vi förbättra vår nya virtuella dator så att vi kan testa hela installationen från en ren avbildning. När vi är klara vill vi ta bort den virtuella datorn.

Nu ska vi prova kommandona för att skapa en virtuell dator.

Skapa en virtuell Linux-dator med Azure PowerShell

Eftersom vi använder Sandbox-miljön i Azure behöver du inte skapa en resursgrupp. Använd i stället resursgruppen [resursgruppsnamn för sandbox-miljö]. Dessutom bör du vara medveten om platsbegränsningar.

Nu ska vi skapa en ny virtuell Azure-dator med PowerShell.

  1. Använd cmdlet:en New-AzVm för att skapa en virtuell dator.

    • Använd resursgruppen [resursgruppsnamn för sandbox-miljö].

    • Ge den virtuella datorn ett namn. Vanligtvis vill du använda något meningsfullt som identifierar syftet med den virtuella datorn, platsen och (om det finns fler än ett) instansnummer. Vi använder "testvm-eus-01" för "Testa virtuell dator i USA, östra, instans 1". Kom med ditt eget namn baserat på var du placerar den virtuella datorn.

    • Välj en plats nära dig från följande lista, tillgänglig i Azure-sandbox-miljön. Se till att ändra värdet i följande exempelkommando om du använder kopiera och klistra in.

      • westus2
      • USA, södra centrala
      • centralus
      • eastus
      • Europa, västra
      • Asien, sydöstra
      • Japan, östra
      • Brasilien, södra
      • Australien, sydöstra
      • centralindia
    • Använd "Canonical:0001-com-ubuntu-server-focal:20_04-lts:latest" för avbildningen. Den här avbildningen är Ubuntu Linux.

    • Använd cmdlet:en Get-Credential och mata in resultaten i parametern Credential.

      Viktigt!

      Se vanliga frågor och svar om virtuella Linux-datorer för begränsningar för användarnamn och lösenord. Lösenorden måste vara mellan 12 och 123 tecken långa och uppfylla tre av följande fyra komplexitetskrav:

      • Ha gemener
      • Ha versaler
      • Innehålla en siffra
      • Innehålla ett specialtecken (Regex matchar [\W_])
    • Lägg till parametern -OpenPorts och skicka "22" som port. Med den här porten kan vi använda SSH i datorn.

    • Skapa ett offentligt IP-adressnamn. Du använder det här namnet för att skapa och hitta din statiska IP-adress för att logga in på datorn.

    New-AzVm -ResourceGroupName <rgn>[sandbox resource group name]</rgn> -Name "testvm-eus-01" -Credential (Get-Credential) -Location "eastus" -Image Canonical:0001-com-ubuntu-server-focal:20_04-lts:latest -OpenPorts 22 -PublicIpAddressName "testvm-eus-01"
    

    Dricks

    Du kan använda knappen Kopiera till att kopiera kommandon till Urklipp. Om du vill klistra in högerklickar du på en ny rad i Cloud Shell-terminalen och väljer Klistra in eller använder kortkommandot Skift+Insert (⌘+V på macOS).

  2. Skapa ett användarnamn och lösenord och tryck sedan på Retur. PowerShell börjar skapa den virtuella datorn.

  3. Det tar några minuter att skapa den virtuella datorn. När det är klart kan du köra frågor mot det och tilldela VM-objektet till en variabel ($vm).

    $vm = (Get-AzVM -Name "testvm-eus-01" -ResourceGroupName <rgn>[sandbox resource group name]</rgn>)
    
  4. Fråga värdet för att dumpa informationen om den virtuella datorn.

    $vm
    

    Du bör se något som liknar följande utdata:

    ResourceGroupName : <rgn>[sandbox resource group name]</rgn>
    Id                : /subscriptions/00000000-0000-0000-0000-000000000000/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}
    
  5. Du kan nå komplexa objekt via en punkt (.) notation. Om du till exempel vill se egenskaperna i objektet VMSize som är associerat med avsnittet HardwareProfile kör du följande kommando:

    $vm.HardwareProfile
    
  6. Du kan också hämta information om någon av diskarna genom att köra följande kommando:

    $vm.StorageProfile.OsDisk
    
  7. Du kan även skicka objekt från virtuella datorer till andra cmdlet:ar. Om du till exempel kör följande kommando visas alla tillgängliga storlekar för den virtuella datorn:

    $vm | Get-AzVMSize
    
  8. Kör nu följande kommando för att hämta din offentliga IP-adress:

    az vm list-ip-addresses -n testvm-eus-01 -g <rgn>[sandbox resource group name]</rgn>
    
  9. Med IP-adressen kan du ansluta till den virtuella datorn med SSH. Om du till exempel använde användarnamnet bob, och IP-adressen är 205.22.16.5, skulle det här kommandot ansluta till Linux-datorn:

    ssh bob@205.22.16.5
    

    Logga ut genom att ange exit.

Ta bort en virtuell dator

Om du vill prova några fler kommandon tar vi bort den virtuella datorn. Först måste vi stänga av den (ange Y om du uppmanas att fortsätta):

Stop-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName

När den virtuella datorn har stoppats tar du bort den virtuella datorn genom att köra cmdleten Remove-AzVM (ange Y om du uppmanas att fortsätta):

Remove-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName

Kör det här kommandot för att visa en lista över alla resurser i resursgruppen:

Get-AzResource -ResourceGroupName $vm.ResourceGroupName | Format-Table

Du bör se flera resurser (diskar, virtuella nätverk och så vidare) som alla fortfarande finns.

Microsoft.Compute/disks
Microsoft.Network/networkInterfaces
Microsoft.Network/networkSecurityGroups
Microsoft.Network/publicIPAddresses
Microsoft.Network/virtualNetworks

Kommandot Remove-AzVMtar bara bort den virtuella datorn. Den rensar inte någon av de andra resurserna. I det här läget skulle vi förmodligen bara ta bort själva resursgruppen och göra det. Men vi ska rensa den manuellt som övning. Du bör se ett mönster i kommandona.

  1. Ta bort nätverksgränssnittet:

    $vm | Remove-AzNetworkInterface –Force
    
  2. Ta bort de hanterade OS-diskarna:

    Get-AzDisk -ResourceGroupName $vm.ResourceGroupName -DiskName $vm.StorageProfile.OSDisk.Name | Remove-AzDisk -Force
    
  3. Ta sedan bort det virtuella nätverket:

    Get-AzVirtualNetwork -ResourceGroupName $vm.ResourceGroupName | Remove-AzVirtualNetwork -Force
    
  4. Ta bort nätverkssäkerhetsgruppen:

    Get-AzNetworkSecurityGroup -ResourceGroupName $vm.ResourceGroupName | Remove-AzNetworkSecurityGroup -Force
    
  5. Ta slutligen bort den offentliga IP-adressen:

    Get-AzPublicIpAddress -ResourceGroupName $vm.ResourceGroupName | Remove-AzPublicIpAddress -Force
    

Vi borde ha fångat alla skapade resurser. Kontrollera resursgruppen bara för att vara säker. Vi utförde många manuella kommandon här, men en bättre metod hade varit att skriva ett skript. Sedan kan vi återanvända den här logiken senare för att skapa eller ta bort en virtuell dator. Låt oss titta på skript med PowerShell.