Udostępnij za pośrednictwem


Samouczek: tworzenie obrazów maszyn wirtualnych z systemem Windows przy użyciu Azure PowerShell

Dotyczy: ✔️ Elastyczne zestawy skalowania maszyn wirtualnych z ✔️ systemem Windows

Obrazy mogą służyć do uruchamiania wdrożeń i zapewnienia spójności na wielu maszynach wirtualnych. W tym samouczku utworzysz własny wyspecjalizowany obraz maszyny wirtualnej platformy Azure przy użyciu programu PowerShell i zapiszesz go w galerii obliczeń platformy Azure (wcześniej znanej jako Shared Image Gallery). Omawiane kwestie:

  • Tworzenie galerii obliczeń platformy Azure
  • Tworzenie definicji obrazu
  • Tworzenie wersji obrazu
  • Tworzenie maszyny wirtualnej na podstawie obrazu
  • Udostępnianie galerii

Zanim rozpoczniesz

Poniższe kroki szczegółowo opisują sposób wykonywania istniejącej maszyny wirtualnej i przekształcania jej w obraz niestandardowy wielokrotnego użytku, którego można użyć do tworzenia nowych maszyn wirtualnych.

Do utworzenia przykładu przedstawionego w tym samouczku potrzebna jest istniejąca maszyna wirtualna. W razie potrzeby możesz zobaczyć przewodnik Szybki start programu PowerShell , aby utworzyć maszynę wirtualną do użycia na potrzeby tego samouczka. Podczas pracy z samouczkiem zastąp nazwy zasobów w razie potrzeby.

Omówienie

Galeria obliczeń platformy Azure upraszcza udostępnianie obrazów niestandardowych w całej organizacji. Obrazy niestandardowe są podobne do obrazów z platformy handlowej, ale tworzy się je samodzielnie. Obrazy niestandardowe mogą służyć do ładowania początkowego konfiguracji, na przykład do wstępnego ładowania aplikacji, konfiguracji aplikacji i innych konfiguracji systemu operacyjnego.

Galeria obliczeń platformy Azure umożliwia udostępnianie niestandardowych obrazów maszyn wirtualnych innym osobom. Wybierz obrazy, które chcesz udostępnić, a w których regionach chcesz je udostępnić, oraz do kogo chcesz je udostępnić.

Funkcja Galeria obliczeń platformy Azure ma wiele typów zasobów:

Zasób Opis
Źródło obrazu Jest to zasób, którego można użyć do utworzenia wersji obrazu w galerii. Źródło obrazu może być istniejącą maszyną wirtualną platformy Azure, która jest uogólniona lub wyspecjalizowana, obraz zarządzany, migawka lub wersja obrazu w innej galerii.
Galeria Podobnie jak w przypadku Azure Marketplace, galeria jest repozytorium do zarządzania obrazami i aplikacjami maszyn wirtualnych oraz udostępniania ich, ale kontrolujesz, kto ma dostęp.
Definicja obrazu Definicje obrazów są tworzone w galerii i zawierają informacje o obrazie i wymaganiach dotyczących korzystania z niego wewnętrznie. Obejmuje to, czy obraz ma system Windows lub Linux, informacje o wersji oraz minimalne i maksymalne wymagania dotyczące pamięci. Jest to definicja typu obrazu.
Wersja obrazu Wersja obrazu jest używana do tworzenia maszyny wirtualnej podczas korzystania z galerii. Możesz mieć wiele wersji obrazu zgodnie z potrzebami dla danego środowiska. Podobnie jak w przypadku obrazu zarządzanego, gdy używasz wersji obrazu do utworzenia maszyny wirtualnej, wersja obrazu jest używana do tworzenia nowych dysków dla maszyny wirtualnej. Wersje obrazów mogą być używane wiele razy.

Uruchamianie usługi Azure Cloud Shell

Usługa Azure Cloud Shell to bezpłatna interaktywna powłoka, której możesz używać do wykonywania kroków opisanych w tym artykule. Udostępnia ona wstępnie zainstalowane i najczęściej używane narzędzia platformy Azure, które są skonfigurowane do użycia na koncie.

Aby otworzyć usługę Cloud Shell, wybierz pozycję Wypróbuj w prawym górnym rogu bloku kodu. Możesz również uruchomić usługę Cloud Shell w oddzielnej karcie przeglądarki, przechodząc do strony https://shell.azure.com/powershell. Wybierz przycisk Kopiuj, aby skopiować bloki kodu, wklej je do usługi Cloud Shell, a następnie naciśnij klawisz Enter, aby je uruchomić.

Pobieranie maszyny wirtualnej

Listę maszyn wirtualnych dostępnych w grupie zasobów można wyświetlić przy użyciu polecenia Get-AzVM. Gdy znasz nazwę maszyny wirtualnej i jaką grupę zasobów, możesz użyć Get-AzVM jej ponownie, aby pobrać obiekt maszyny wirtualnej i zapisać go w zmiennej do późniejszego użycia. Ten przykład pobiera maszynę wirtualną o nazwie sourceVM z grupy zasobów myResourceGroup i przypisuje ją do zmiennej $sourceVM.

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

Tworzenie grupy zasobów

Utwórz grupę zasobów za pomocą polecenia New-AzResourceGroup.

Grupa zasobów platformy Azure to logiczny kontener przeznaczony do wdrażania zasobów platformy Azure i zarządzania nimi. W poniższym przykładzie grupa zasobów o nazwie myGalleryRG jest tworzona w regionie EastUS :

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

Galeria to podstawowy zasób używany do włączania udostępniania obrazów. Dozwolone znaki nazwy galerii to wielkie lub małe litery, cyfry, kropki i kropki. Nazwa galerii nie może zawierać kreski. Nazwy galerii muszą być unikatowe w ramach subskrypcji.

Utwórz galerię przy użyciu polecenia New-AzGallery. Poniższy przykład tworzy galerię o nazwie myGallery w grupie zasobów myGalleryRG .

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

Tworzenie definicji obrazu

Definicje obrazów tworzą logiczne grupowanie obrazów. Są one używane do zarządzania informacjami o wersjach obrazów, które są w nich tworzone. Nazwy definicji obrazów mogą składać się z wielkich lub małych liter, cyfr, kropek, kreski i kropki. Aby uzyskać więcej informacji na temat wartości, które można określić dla definicji obrazu, zobacz Definicje obrazów.

Utwórz definicję obrazu przy użyciu polecenia New-AzGalleryImageDefinition. W tym przykładzie obraz galerii nosi nazwę myGalleryImage i jest tworzony dla wyspecjalizowanego obrazu.

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

Tworzenie wersji obrazu

Utwórz wersję obrazu na podstawie maszyny wirtualnej przy użyciu polecenia New-AzGalleryImageVersion.

Dozwolone znaki dla wersji obrazu to liczby i kropki. Liczby muszą mieścić się w zakresie 32-bitowej liczby całkowitej. Format: MajorVersion. MinorVersion. Poprawka.

W tym przykładzie wersja obrazu to 1.0.0 i jest replikowana do centrów danych Wschodnie stany USA i Południowo-środkowe stany USA . Podczas wybierania regionów docelowych replikacji należy uwzględnić region źródłowy jako obiekt docelowy replikacji.

Aby utworzyć wersję obrazu na podstawie maszyny wirtualnej, użyj polecenia $vm.Id.ToString() .-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 '2030-12-01'

Replikacja obrazu do wszystkich regionów docelowych może zająć trochę czasu.

Tworzenie maszyny wirtualnej

Po utworzeniu wyspecjalizowanego obrazu możesz utworzyć co najmniej jedną nową maszynę wirtualną. Za pomocą polecenia cmdlet New-AzVM . Aby użyć obrazu, użyj Set-AzVMSourceImage i ustaw -Id dla identyfikatora definicji obrazu ($galleryImage.Id w tym przypadku), aby zawsze używać najnowszej wersji obrazu.

W tym przykładzie zastąp nazwy zasobów zgodnie z potrzebami.

# Create some variables for the new VM.
$resourceGroup = "myResourceGroup"
$location = "South Central US"
$vmName = "mySpecializedVM"

# Create a resource group
New-AzResourceGroup -Name $resourceGroup -Location $location

# Create the network resources.
$subnetConfig = New-AzVirtualNetworkSubnetConfig -Name mySubnet -AddressPrefix 192.168.1.0/24
$vnet = New-AzVirtualNetwork -ResourceGroupName $resourceGroup -Location $location `
  -Name MYvNET -AddressPrefix 192.168.0.0/16 -Subnet $subnetConfig
$pip = New-AzPublicIpAddress -ResourceGroupName $resourceGroup -Location $location `
  -Name "mypublicdns$(Get-Random)" -AllocationMethod Static -IdleTimeoutInMinutes 4
$nsgRuleRDP = New-AzNetworkSecurityRuleConfig -Name myNetworkSecurityGroupRuleRDP  -Protocol Tcp `
  -Direction Inbound -Priority 1000 -SourceAddressPrefix * -SourcePortRange * -DestinationAddressPrefix * `
  -DestinationPortRange 3389 -Access Deny
$nsg = New-AzNetworkSecurityGroup -ResourceGroupName $resourceGroup -Location $location `
  -Name myNetworkSecurityGroup -SecurityRules $nsgRuleRDP
$nic = New-AzNetworkInterface -Name $vmName -ResourceGroupName $resourceGroup -Location $location `
  -SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $pip.Id -NetworkSecurityGroupId $nsg.Id

# Create a virtual machine configuration using $imageVersion.Id to specify the image version.
$vmConfig = New-AzVMConfig -VMName $vmName -VMSize Standard_D1_v2 | `
Set-AzVMSourceImage -Id $galleryImage.Id | `
Add-AzVMNetworkInterface -Id $nic.Id

# Create a virtual machine
New-AzVM -ResourceGroupName $resourceGroup -Location $location -VM $vmConfig

Zalecamy udostępnianie dostępu na poziomie galerii. Użyj adresu e-mail i polecenia cmdlet Get-AzADUser , aby uzyskać identyfikator obiektu dla użytkownika, a następnie użyj polecenia New-AzRoleAssignment , aby udzielić im dostępu do galerii. Zastąp przykładowy adres e-mail w alinne_montes@contoso.com tym przykładzie własnymi informacjami.

# 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

Czyszczenie zasobów

Gdy grupa zasobów nie będzie już potrzebna, możesz użyć polecenia cmdlet Remove-AzResourceGroup , aby usunąć grupę zasobów i wszystkie powiązane zasoby:

# Delete the gallery 
Remove-AzResourceGroup -Name myGalleryRG

# Delete the VM
Remove-AzResourceGroup -Name myResoureceGroup

Konstruktor obrazów platformy Azure

Platforma Azure oferuje również usługę utworzoną na platformie Packer, azure VM Image Builder. Wystarczy opisać dostosowania w szablonie i obsłużyć tworzenie obrazu.

Następne kroki

W tym samouczku utworzono wyspecjalizowany obraz maszyny wirtualnej. W tym samouczku omówiono:

  • Tworzenie galerii obliczeń platformy Azure
  • Tworzenie definicji obrazu
  • Tworzenie wersji obrazu
  • Tworzenie maszyny wirtualnej na podstawie obrazu
  • Udostępnianie galerii

Przejdź do następnego samouczka, aby dowiedzieć się więcej o Virtual Machine Scale Sets.