Självstudie: Skapa och använda en anpassad avbildning för VM-skalningsuppsättningar med Azure PowerShell

När du skapar en skalningsuppsättning, kan du ange en avbildning som ska användas när de virtuella datorinstanserna distribueras. Om du vill minska antalet uppgifter när de virtuella datorinstanserna distribueras, kan du använda en anpassad virtuell datoravbildning. Den här anpassade virtuella datoravbildningen inkluderar alla nödvändiga programinstallationer eller konfigurationer. Alla virtuella datorinstanser som skapats i skalningsuppsättningen använder den anpassade virtuella datoravbildningen och är redo att hantera din programtrafik. I den här självstudiekursen får du lära du dig att:

  • Skapa ett Azure Compute-galleri
  • Skapa en bilddefinition
  • Skapa en avbildningsversion
  • Skapa en skalningsuppsättning från en bild
  • Dela ett bildgalleri

Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.

Starta Azure Cloud Shell

Azure Cloud Shell är ett interaktivt gränssnitt som du kan använda för att utföra stegen i den här artikeln. Den har vanliga Azure-verktyg förinstallerat och har konfigurerats för användning med ditt konto.

Om du vill öppna Cloud Shell väljer du bara Prova från det övre högra hörnet i ett kodblock. Du kan också starta Cloud Shell i en separat webbläsarflik genom att gå till https://shell.azure.com/powershell. Kopiera kodblocket genom att välja Kopiera, klistra in det i Cloud Shell och kör det genom att trycka på RETUR.

Skapa och konfigurera en virtuell källdator

Först skapar du en resursgrupp med New-AzResourceGroup och därefter skapar du en virtuell dator med New-AzVM. Den här virtuella datorn används sedan som källa för avbildningen. Följande exempel skapar en virtuell dator som heter myVM i resursgruppen med namnet myResourceGroup:

New-AzResourceGroup -Name 'myResourceGroup' -Location 'EastUS'

New-AzVm `
   -ResourceGroupName 'myResourceGroup' `
   -Name 'myVM' `
   -Location 'East US' `
   -VirtualNetworkName 'myVnet' `
   -SubnetName 'mySubnet' `
   -SecurityGroupName 'myNetworkSecurityGroup' `
   -PublicIpAddressName 'myPublicIpAddress' `
   -OpenPorts 80,3389

Lagra vm-variabeln

Du kan se en lista över virtuella datorer som är tillgängliga i en resursgrupp med hjälp av Get-AzVM. När du känner till namnet på den virtuella datorn och vilken resursgrupp kan du använda Get-AzVM igen för att hämta vm-objektet och lagra det i en variabel som ska användas senare. Det här exemplet hämtar en virtuell dator med namnet myVM från resursgruppen "myResourceGroup" och tilldelar den till variabeln $vm.

$sourceVM = Get-AzVM `
   -Name myVM `
   -ResourceGroupName myResourceGroup

Ett bildgalleri är den primära resursen som används för att aktivera bilddelning. Tillåtna tecken för gallerinamn är versaler eller gemener, siffror, punkter och punkter. Gallerinamnet får inte innehålla bindestreck. Gallerinamn måste vara unika i din prenumeration.

Skapa ett bildgalleri med New-AzGallery. I följande exempel skapas ett galleri med namnet myGallery i resursgruppen myGalleryRG .

$resourceGroup = New-AzResourceGroup `
   -Name 'myGalleryRG' `
   -Location 'EastUS'

$gallery = New-AzGallery `
   -GalleryName 'myGallery' `
   -ResourceGroupName $resourceGroup.ResourceGroupName `
   -Location $resourceGroup.Location `
   -Description 'Azure Compute Gallery for my organization'	

Skapa en bilddefinition

Bilddefinitioner skapar en logisk gruppering för bilder. De används för att hantera information om de avbildningsversioner som skapas i dem. Bilddefinitionsnamn kan bestå av versaler eller gemener, siffror, punkter, bindestreck och punkter. Mer information om de värden som du kan ange för en bilddefinition finns i Bilddefinitioner.

Skapa avbildningsdefinitionen med New-AzGalleryImageDefinition. I det här exemplet heter galleribilden myGalleryImage och skapas för en specialiserad avbildning.

$galleryImage = New-AzGalleryImageDefinition `
   -GalleryName $gallery.Name `
   -ResourceGroupName $resourceGroup.ResourceGroupName `
   -Location $gallery.Location `
   -Name 'myImageDefinition' `
   -OsState specialized `
   -OsType Windows `
   -Publisher 'myPublisher' `
   -Offer 'myOffer' `
   -Sku 'mySKU'

Skapa en avbildningsversion

Skapa en avbildningsversion från en virtuell dator med New-AzGalleryImageVersion.

Tillåtna tecken för bildversionen är siffror och punkter. Tal måste ligga inom intervallet för ett 32-bitars heltal. Format: MajorVersion.MinorVersion.Korrigering.

I det här exemplet är avbildningsversionen 1.0.0 och den replikeras till både datacenter i USA , östra och USA , södra centrala. När du väljer målregioner för replikering måste du inkludera källregionen som mål för replikering.

Om du vill skapa en avbildningsversion från den virtuella datorn använder du $vm.Id.ToString() för -Source.

$region1 = @{Name='South Central US';ReplicaCount=1}
$region2 = @{Name='East US';ReplicaCount=2}
$targetRegions = @($region1,$region2)

New-AzGalleryImageVersion `
   -GalleryImageDefinitionName $galleryImage.Name`
   -GalleryImageVersionName '1.0.0' `
   -GalleryName $gallery.Name `
   -ResourceGroupName $resourceGroup.ResourceGroupName `
   -Location $resourceGroup.Location `
   -TargetRegion $targetRegions  `
   -Source $sourceVM.Id.ToString() `
   -PublishingProfileEndOfLifeDate '2023-12-01'

Det kan ta en stund att replikera avbildningen till alla målregioner.

Skapa en skalningsuppsättning från avbildningen

Nu skapar du en skalningsuppsättning med New-AzVmss som använder sig av -ImageName-parametern för att definiera den anpassade virtuella datoravbildningen som skapades i föregående steg. För att distribuera trafik till flera virtuella datorinstanser så skapas även en lastbalanserare. Lastbalanseraren innehåller regler för att distribuera trafik på TCP-port 80 och för att tillåta trafik för fjärrskrivbordet på TCP-port 3389 och PowerShell-fjärrkommunikation på TCP-port 5985. När du uppmanas, anger du dina egna önskade administrativa autentiseringsuppgifter för de virtuella datorinstanserna i skalningsuppsättning:

Viktigt!

Från och med november 2023 kommer VM-skalningsuppsättningar som skapats med PowerShell och Azure CLI som standard att vara flexibla orkestreringsläge om inget orkestreringsläge har angetts. Mer information om den här ändringen och vilka åtgärder du bör vidta finns i Icke-bakåtkompatibla ändringar för VMSS PowerShell/CLI-kunder – Microsoft Community Hub

# Define variables for the scale set
$resourceGroupName = "myScaleSet"
$scaleSetName = "myScaleSet"
$location = "East US"

# Create a resource group
New-AzResourceGroup -ResourceGroupName $resourceGroupName -Location $location

# Create a configuration 
$vmssConfig = New-AzVmssConfig `
   -Location $location `
   -OrchestrationMode Flexible `
   -SkuCapacity 2 `
   -SkuName "Standard_D2s_v3"

# Reference the image version
Set-AzVmssStorageProfile $vmssConfig `
  -OsDiskCreateOption "FromImage" `
  -ImageReferenceId $galleryImage.Id

# Create the scale set 
New-AzVmss `
  -ResourceGroupName $resourceGroupName `
  -Name $scaleSetName `
  -VirtualMachineScaleSet $vmssConfig

Det tar några minuter att skapa och konfigurera alla skalningsuppsättningsresurser och virtuella datorer.

Vi rekommenderar att du delar åtkomst på bildgallerinivå. Använd en e-postadress och cmdleten Get-AzADUser för att hämta objekt-ID:t för användaren och använd sedan New-AzRoleAssignment för att ge dem åtkomst till galleriet. Ersätt exempel-e-postmeddelandet alinne_montes@contoso.com i det här exemplet med din egen information.

# Get the object ID for the user
$user = Get-AzADUser -StartsWith alinne_montes@contoso.com
# Grant access to the user for our gallery
New-AzRoleAssignment `
   -ObjectId $user.Id `
   -RoleDefinitionName Reader `
   -ResourceName $gallery.Name `
   -ResourceType Microsoft.Compute/galleries `
   -ResourceGroupName $resourceGroup.ResourceGroupName

Rensa resurser

När den inte längre behövs kan du använda cmdleten Remove-AzResourceGroup för att ta bort resursgruppen och alla relaterade resurser:

# Delete the gallery 
Remove-AzResourceGroup -Name myGalleryRG

# Delete the scale set resource group
Remove-AzResourceGroup -Name myResoureceGroup

Nästa steg

I den här självstudien fick du läsa om hur du skapar och använder en anpassad virtuell datoravbildning för dina skalningsuppsättningar med Azure PowerShell:

  • Skapa ett Azure Compute-galleri
  • Skapa en bilddefinition
  • Skapa en avbildningsversion
  • Skapa en skalningsuppsättning från en bild
  • Dela ett bildgalleri

Gå vidare till nästa självstudie för att lära dig hur du distribuerar program till din skalningsuppsättning.