Samouczek: tworzenie obrazów maszyn wirtualnych z systemem Windows przy użyciu programu Azure PowerShell
Dotyczy: ✔️ Maszyny wirtualne z systemem Windows — elastyczne zestawy skalowania ✔️
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 nazywanej galerią obrazów udostępnionych). Dowiedz się, jak odbywa się:
- Tworzenie galerii zasobów obliczeniowych platformy Azure
- Tworzenie definicji obrazu
- Tworzenie wersji obrazu
- Tworzenie maszyny wirtualnej na podstawie obrazu
- Udostępnianie galerii
Zanim rozpoczniesz
W poniższych krokach szczegółowo opisano 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 zasobów obliczeniowych 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 galerii 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łem obrazu może być istniejąca maszyna wirtualna platformy Azure, która jest uogólniona lub wyspecjalizowana, obraz zarządzany, migawka lub wersja obrazu w innej galerii. |
Galeria | Podobnie jak w witrynie Azure Marketplace, galeria to repozytorium do zarządzania obrazami i udostępnianiem obrazów i aplikacji maszyn wirtualnych, 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 jest windows, czy Linux, informacje o wersji oraz minimalne i maksymalne wymagania dotyczące pamięci. Jest to definicja typu obrazu. |
Wersja obrazu | Wersja obrazu służy do tworzenia maszyny wirtualnej podczas korzystania z galerii. Możesz mieć wiele wersji obrazu zgodnie z potrzebami w danym środowisku. 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
Możesz wyświetlić listę maszyn wirtualnych, które są dostępne w grupie zasobów przy użyciu polecenia Get-AzVM. Gdy znasz nazwę maszyny wirtualnej i 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'
Utwórz galerię
Galeria jest podstawowym zasobem używanym do włączania udostępniania obrazów. Dozwolone znaki dla 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 kropek. 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ą należeć do zakresu 32-bitowej liczby całkowitej. Format: MajorVersion.Wersja pomocnicza.Stosowanie poprawek.
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 na potrzeby replikacji należy uwzględnić region źródłowy jako docelowy dla replikacji.
Aby utworzyć wersję obrazu na podstawie maszyny wirtualnej, użyj polecenia $vm.Id.ToString()
dla elementu -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żna utworzyć co najmniej jedną nową maszynę wirtualną. Za pomocą polecenia cmdlet New-AzVM. Aby użyć obrazu, użyj Set-AzVMSourceImage
i ustaw -Id
parametr na identyfikator 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
Udostępnianie galerii
Zalecamy udostępnienie 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 usunąć grupę zasobów i wszystkie powiązane zasoby za pomocą polecenia cmdlet Remove-AzResourceGroup :
# 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 i 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 zasobów obliczeniowych 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 zestawach skalowania maszyn wirtualnych.