チュートリアル:Azure PowerShell を使用して Azure VM のカスタム イメージを作成するTutorial: Create a custom image of an Azure VM with Azure PowerShell

カスタム イメージは Marketplace のイメージに似ていますが、カスタム イメージは自分で作成します。Custom images are like marketplace images, but you create them yourself. カスタム イメージを使用してデプロイのブートストラップを実行し、複数の VM で一貫性を確保することができます。Custom images can be used to bootstrap deployments and ensure consistency across multiple VMs. このチュートリアルでは、PowerShell を使用して Azure 仮想マシンの独自のカスタム イメージを作成します。In this tutorial, you create your own custom image of an Azure virtual machine using PowerShell. 学習内容は次のとおりです。You learn how to:

  • VM を sysprep して汎用化するSysprep and generalize VMs
  • カスタム イメージを作成するCreate a custom image
  • カスタム イメージから VM を作成するCreate a VM from a custom image
  • サブスクリプション内のすべてのイメージを一覧表示するList all the images in your subscription
  • イメージを削除するDelete an image

パブリック プレビューでは、Azure VM Image Builder サービスが含まれています。In public preview, we have the Azure VM Image Builder service. テンプレートにカスタマイズを記述するだけで、この記事のイメージ作成手順が処理されます。Simply describe your customizations in a template, and it will handle the image creation steps in this article. Azure Image Builder (プレビュー) をお試しくださいTry Azure Image Builder (preview).

開始する前にBefore you begin

以下の手順では、既存の VM を取得し、新しい VM インスタンスの作成に使用できる再利用可能なカスタム イメージに変換する方法について詳しく説明します。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.

このチュートリアルの例を完了するには、既存の仮想マシンが必要です。To complete the example in this tutorial, you must have an existing virtual machine. 必要に応じて、このサンプル スクリプトで仮想マシンを作成できます。If needed, this script sample can create one for you. このチュートリアルを実行するときは、リソース グループと VM の名前を適宜置き換えてください。When working through the tutorial, replace the resource group and VM names where needed.

Azure Cloud Shell を起動するLaunch Azure Cloud Shell

Azure Cloud Shell は無料のインタラクティブ シェルです。この記事の手順は、Azure Cloud Shell を使って実行することができます。The Azure Cloud Shell is a free interactive shell that you can use to run the steps in this article. 一般的な Azure ツールが事前にインストールされており、アカウントで使用できるように構成されています。It has common Azure tools preinstalled and configured to use with your account.

Cloud Shell を開くには、コード ブロックの右上隅にある [使ってみる] を選択します。To open the Cloud Shell, just select Try it from the upper right corner of a code block. https://shell.azure.com/powershell に移動して、別のブラウザー タブで Cloud Shell を起動することもできます。You can also launch Cloud Shell in a separate browser tab by going to https://shell.azure.com/powershell. [コピー] を選択してコードのブロックをコピーし、Cloud Shell に貼り付けてから、Enter キーを押して実行します。Select Copy to copy the blocks of code, paste it into the Cloud Shell, and press enter to run it.

VM の準備Prepare VM

仮想マシンのイメージを作成するには、ソース VM を一般化して割り当てを解除し、Azure で一般化済みとマークすることにより、ソース VM を準備する必要があります。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.

Sysprep を使用して Windows VM を一般化するGeneralize the Windows VM using Sysprep

特に重要な点は、Sysprep がすべての個人アカウント情報を削除して、マシンをイメージとして使用できるように準備することです。Sysprep removes all your personal account information, among other things, and prepares the machine to be used as an image. Sysprep の詳細については、「How to Use Sysprep: An Introduction (Sysprep の使用方法: 紹介)」を参照してください。For details about Sysprep, see How to Use Sysprep: An Introduction.

  1. 仮想マシンへの接続Connect to the virtual machine.
  2. 管理者としてコマンド プロンプト ウィンドウを開きます。Open the Command Prompt window as an administrator. ディレクトリを %windir%\system32\sysprep に変更し、sysprep.exe を実行します。Change the directory to %windir%\system32\sysprep, and then run sysprep.exe.
  3. [システム準備ツール] ダイアログ ボックスで [システムの OOBE (Out-of-Box Experience) に入る] を選択し、 [一般化する] チェック ボックスがオンになっていることを確認します。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. [シャットダウン オプション][シャットダウン] を選択し、 [OK] をクリックします。In Shutdown Options, select Shutdown and then click OK.
  5. Sysprep は完了時に仮想マシンをシャットダウンします。When Sysprep completes, it shuts down the virtual machine. VM は再起動しないでくださいDo not restart the VM.

VM の割り当てを解除して VM を汎用としてマークするDeallocate and mark the VM as generalized

イメージを作成するには、VM の割り当てを解除し、Azure で VM を一般化済みとしてマークする必要があります。To create an image, the VM needs to be deallocated and marked as generalized in Azure.

Stop-AzVM を使用して VM の割り当てを解除します。Deallocate the VM using Stop-AzVM.

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

Set-AzVm を使用して、仮想マシンの状態を -Generalized に設定します。Set the status of the virtual machine to -Generalized using Set-AzVm.

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

イメージの作成Create the image

New-AzImageConfigNew-AzImage を使用して、VM のイメージを作成できるようになりました。Now you can create an image of the VM by using New-AzImageConfig and New-AzImage. 次の例では、myVM という名前の VM から myImage という名前のイメージを作成します。The following example creates an image named myImage from a VM named myVM.

仮想マシンを取得します。Get the virtual machine.

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

イメージの設定を作成します。Create the image configuration.

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

イメージを作成します。Create the image.

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

イメージからの VM の作成Create VMs from the image

イメージが用意できたので、イメージから新しい VM を 1 つ以上作成できます。Now that you have an image, you can create one or more new VMs from the image. カスタム イメージからの VM の作成は、Marketplace イメージを使用した VM の作成に似ています。Creating a VM from a custom image is similar to creating a VM using a Marketplace image. Marketplace イメージを使うときは、イメージ、イメージ プロバイダー、プラン、SKU、バージョンに関する情報を提供する必要があります。When you use a Marketplace image, you have to provide the information about the image, image provider, offer, SKU, and version. リソース グループが同じであれば、New-AzVM コマンドレットに設定されている簡易パラメーターを利用し、カスタム イメージの名前を指定する必要があります。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.

この例では、myResourceGroupmyImage イメージから myVMfromImage という名前の VM を作成します。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

イメージの管理Image management

ここでは、一般的なマネージド イメージ タスクと PowerShell を使用してそれらを完了する方法の例をいくつか示します。Here are some examples of common managed image tasks and how to complete them using PowerShell.

すべてのイメージの名前を一覧表示します。List all images by name.

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

イメージを削除します。Delete an image. この例では、myImage という名前のイメージを myResourceGroup から削除します。This example deletes the image named myImage from the myResourceGroup.

Remove-AzImage `
    -ImageName myImage `
    -ResourceGroupName myResourceGroup

次の手順Next steps

このチュートリアルでは、カスタム VM イメージを作成しました。In this tutorial, you created a custom VM image. 以下の方法について学習しました。You learned how to:

  • VM を sysprep して汎用化するSysprep and generalize VMs
  • カスタム イメージを作成するCreate a custom image
  • カスタム イメージから VM を作成するCreate a VM from a custom image
  • サブスクリプション内のすべてのイメージを一覧表示するList all the images in your subscription
  • イメージを削除するDelete an image

次のチュートリアルに進み、高可用性仮想マシンを作成する方法について学習してください。Advance to the next tutorial to learn about how to create highly available virtual machines.