Samouczek: tworzenie niestandardowego obrazu maszyny wirtualnej na platformie Azure za pomocą programu Azure PowerShellTutorial: Create a custom image of an Azure VM with Azure PowerShell

Obrazy niestandardowe są podobne do obrazów z platformy handlowej, ale tworzy się je samodzielnie.Custom images are like marketplace images, but you create them yourself. Obrazy niestandardowe mogą być używane do uruchamiania wdrożeń i zapewniania spójności na wielu maszynach wirtualnych.Custom images can be used to bootstrap deployments and ensure consistency across multiple VMs. W tym samouczku utworzysz własny niestandardowy obraz maszyny wirtualnej platformy Azure przy użyciu programu PowerShell.In this tutorial, you create your own custom image of an Azure virtual machine using PowerShell. Omawiane kwestie:You learn how to:

  • Używanie narzędzia Sysprep i uogólnianie maszyn wirtualnychSysprep and generalize VMs
  • Tworzenie obrazu niestandardowegoCreate a custom image
  • Tworzenie maszyny wirtualnej na podstawie obrazu niestandardowegoCreate a VM from a custom image
  • Wyświetlanie listy wszystkich obrazów w subskrypcjiList all the images in your subscription
  • Usuwanie obrazuDelete an image

W publicznej wersji zapoznawczej mamy usługę Azure VM Image Builder .In public preview, we have the Azure VM Image Builder service. Wystarczy opisać dostosowania w szablonie i obsłużyć kroki tworzenia obrazu w tym artykule.Simply describe your customizations in a template, and it will handle the image creation steps in this article. Wypróbuj usługę Azure Image Builder (wersja zapoznawcza).Try Azure Image Builder (preview).

Przed rozpoczęciemBefore you begin

W poniższych krokach wyjaśniono szczegółowo, jak na podstawie istniejącej maszyny wirtualnej utworzyć obraz niestandardowy do ponownego użycia, za pomocą którego można utworzyć nowe wystąpienia maszyn wirtualnych.The steps below detail how to take an existing VM and turn it into a re-usable custom image that you can use to create new VM instances.

Do utworzenia przykładu przedstawionego w tym samouczku potrzebna jest istniejąca maszyna wirtualna.To complete the example in this tutorial, you must have an existing virtual machine. W razie potrzeby ten przykładowy skrypt pomoże Ci go utworzyć.If needed, this script sample can create one for you. Podczas pracy z tym samouczkiem zamień w odpowiednich przypadkach nazwy maszyn wirtualnych i grup zasobów.When working through the tutorial, replace the resource group and VM names where needed.

Uruchamianie usługi Azure Cloud ShellLaunch 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.The Azure Cloud Shell is a free interactive shell that you can use to run the steps in this article. Udostępnia ona wstępnie zainstalowane i najczęściej używane narzędzia platformy Azure, które są skonfigurowane do użycia na koncie.It has common Azure tools preinstalled and configured to use with your account.

Aby otworzyć usługę Cloud Shell, wybierz pozycję Wypróbuj w prawym górnym rogu bloku kodu.To open the Cloud Shell, just select Try it from the upper right corner of a code block. Możesz również uruchomić usługę Cloud Shell w oddzielnej karcie przeglądarki, przechodząc do strony https://shell.azure.com/powershell.You can also launch Cloud Shell in a separate browser tab by going to 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ć.Select Copy to copy the blocks of code, paste it into the Cloud Shell, and press enter to run it.

Przygotowywanie maszyny wirtualnejPrepare VM

Aby utworzyć obraz maszyny wirtualnej, należy przygotować źródłową maszynę wirtualną przez uogólnienie jej, cofnięcie przydziału, a następnie oznaczenie jej jako uogólnionej na platformie Azure.To create an image of a virtual machine, you need to prepare the source VM by generalizing it, deallocating, and then marking it as generalized with Azure.

Uogólnianie maszyny wirtualnej z systemem Windows za pomocą narzędzia SysprepGeneralize the Windows VM using Sysprep

Narzędzie Sysprep między innymi usuwa wszystkie informacje osobiste związane z kontem i przygotowuje maszynę do używania jako obraz.Sysprep removes all your personal account information, among other things, and prepares the machine to be used as an image. Aby uzyskać więcej informacji na temat narzędzia Sysprep, zobacz Używanie narzędzia Sysprep: wprowadzenie.For details about Sysprep, see How to Use Sysprep: An Introduction.

  1. Nawiąż połączenie z maszyną wirtualną.Connect to the virtual machine.
  2. Otwórz okno wiersza polecenia jako administrator.Open the Command Prompt window as an administrator. Zmień katalog na %windir%\system32\sysprep, a następnie uruchom plik sysprep.exe.Change the directory to %windir%\system32\sysprep, and then run sysprep.exe.
  3. W oknie dialogowym Narzędzie przygotowywania systemu wybierz pozycję Włącz systemowy tryb OOBE i upewnij się, że pole wyboru Uogólnij jest zaznaczone.In the System Preparation Tool dialog box, select Enter System Out-of-Box Experience (OOBE), and make sure that the Generalize check box is selected.
  4. W obszarze Opcje zamykania wybierz pozycję Zamknij, a następnie kliknij przycisk OK.In Shutdown Options, select Shutdown and then click OK.
  5. Gdy narzędzie Sysprep zakończy działanie, maszyna wirtualna zostanie wyłączona.When Sysprep completes, it shuts down the virtual machine. Nie uruchamiaj ponownie maszyny wirtualnej.Do not restart the VM.

Cofanie przydziału i oznaczanie maszyny wirtualnej jako uogólnionejDeallocate and mark the VM as generalized

Aby utworzyć obraz, należy cofnąć przydział maszyny wirtualnej i oznaczyć ją jako uogólnioną na platformie Azure.To create an image, the VM needs to be deallocated and marked as generalized in Azure.

Cofnij przydział maszyny wirtualnej za pomocą polecenia stop-AzVM.Deallocate the VM using Stop-AzVM.

Stop-AzVM `
   -ResourceGroupName myResourceGroup `
   -Name myVM -Force

Ustaw stan maszyny wirtualnej na -Generalized za pomocą polecenia Set-AzVm.Set the status of the virtual machine to -Generalized using Set-AzVm.

Set-AzVM `
   -ResourceGroupName myResourceGroup `
   -Name myVM -Generalized

Tworzenie obrazuCreate the image

Teraz możesz utworzyć obraz maszyny wirtualnej za pomocą poleceń New-AzImageConfig i New-AzImage.Now you can create an image of the VM by using New-AzImageConfig and New-AzImage. W poniższym przykładzie utworzono obraz o nazwie myImage za pomocą maszyny wirtualnej o nazwie myVM.The following example creates an image named myImage from a VM named myVM.

Pobierz maszynę wirtualną.Get the virtual machine.

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

Utwórz konfigurację obrazu.Create the image configuration.

$image = New-AzImageConfig `
   -Location EastUS `
   -SourceVirtualMachineId $vm.ID 

Utwórz obraz.Create the image.

New-AzImage `
   -Image $image `
   -ImageName myImage `
   -ResourceGroupName myResourceGroup

Tworzenie maszyn wirtualnych z obrazuCreate VMs from the image

Teraz, gdy masz już obraz, możesz za jego pomocą utworzyć jedną lub więcej nowych maszyn wirtualnych.Now that you have an image, you can create one or more new VMs from the image. Tworzenie maszyny wirtualnej na podstawie obrazu niestandardowego jest podobne do tworzenia maszyny wirtualnej przy użyciu obrazu z witryny Marketplace.Creating a VM from a custom image is similar to creating a VM using a Marketplace image. W przypadku obrazu z witryny Marketplace należy podać informacje dotyczące obrazu, dostawcy obrazu, oferty, jednostki SKU i wersji.When you use a Marketplace image, you have to provide the information about the image, image provider, offer, SKU, and version. W przypadku uproszczonego zestawu parametrów dla polecenia cmdlet New-AzVM wystarczy podać nazwę obrazu niestandardowego, o ile znajduje się on w tej samej grupie zasobów.Using the simplified parameter set for the New-AzVM cmdlet, you just need to provide the name of the custom image as long as it is in the same resource group.

W tym przykładzie jest tworzona maszyna wirtualna o nazwie myVMfromImage za pomocą obrazu o nazwie myImage w grupie zasobów myResourceGroup.This example creates a VM named myVMfromImage from the myImage image, in myResourceGroup.

New-AzVm `
    -ResourceGroupName "myResourceGroup" `
    -Name "myVMfromImage" `
    -ImageName "myImage" `
    -Location "East US" `
    -VirtualNetworkName "myImageVnet" `
    -SubnetName "myImageSubnet" `
    -SecurityGroupName "myImageNSG" `
    -PublicIpAddressName "myImagePIP" `
    -OpenPorts 3389

Zalecamy ograniczenie liczby współbieżnych wdrożeń do 20 maszyn wirtualnych z jednego obrazu.We recommend that you limit the number of concurrent deployments to 20 VMs from a single image. Jeśli planujesz współbieżne wdrożenia z ponad 20 maszyn wirtualnych z tego samego obrazu niestandardowego, użyj udostępnionej galerii obrazów z wieloma replikami obrazu.If you are planning large-scale, concurrent deployments of over 20 VMs from the same custom image, you should use a Shared Image Gallery with multiple image replicas.

Zarządzanie obrazamiImage management

Oto kilka przykładów typowych zadań zarządzania obrazami i sposoby ich wykonania za pomocą programu PowerShell.Here are some examples of common managed image tasks and how to complete them using PowerShell.

Wyświetl listę wszystkich obrazów według nazwy.List all images by name.

$images = Get-AzResource -ResourceType Microsoft.Compute/images 
$images.name

Usuwanie obrazu.Delete an image. W tym przykładzie obraz o nazwie myImage jest usuwany z grupy myResourceGroup.This example deletes the image named myImage from the myResourceGroup.

Remove-AzImage `
    -ImageName myImage `
    -ResourceGroupName myResourceGroup

Następne krokiNext steps

W tym samouczku został utworzony obraz niestandardowy maszyny wirtualnej.In this tutorial, you created a custom VM image. W tym samouczku omówiono:You learned how to:

  • Używanie narzędzia Sysprep i uogólnianie maszyn wirtualnychSysprep and generalize VMs
  • Tworzenie obrazu niestandardowegoCreate a custom image
  • Tworzenie maszyny wirtualnej na podstawie obrazu niestandardowegoCreate a VM from a custom image
  • Wyświetlanie listy wszystkich obrazów w subskrypcjiList all the images in your subscription
  • Usuwanie obrazuDelete an image

Przejdź do następnego samouczka, aby dowiedzieć się, jak utworzyć maszyny wirtualne o wysokiej dostępności.Advance to the next tutorial to learn about how to create highly available virtual machines.