仮想マシンまたは VHD のイメージを作成する方法How to create an image of a virtual machine or VHD

仮想マシン (VM) のコピーを複数作成し、Azure で使用するには、VM または OS VHD のイメージをキャプチャします。To create multiple copies of a virtual machine (VM) for use in Azure, capture an image of the VM or of the OS VHD. デプロイ用のイメージを作成するには、個人のアカウント情報を削除する必要があります。To create an image for deployment, you'll need to remove personal account information. 次の手順で既存の VM のプロビジョニングと割り当てを解除し、イメージを作成します。In the following steps, you deprovision an existing VM, deallocate it and create an image. このイメージを使用して、サブスクリプション内の任意のリソース グループに VM を作成できます。You can use this image to create VMs across any resource group within your subscription.

バックアップやデバッグのために既存の Linux VM のコピーを作成する方法、またはオンプレミス VM から特別な Linux VHD をアップロードする方法については、「カスタム ディスク イメージをアップロードして Linux VM を作成する」を参照してください。To create a copy of your existing Linux VM for backup or debugging, or to upload a specialized Linux VHD from an on-premises VM, see Upload and create a Linux VM from custom disk image.

Azure VM Image Builder (パブリック プレビュー) サービスを使用して、ご自身のカスタム イメージを作成することができます。ツールの学習やビルド パイプラインのセットアップは必要なく、イメージ構成を用意するだけで、Image Builder によってイメージが作成されます。You can use the Azure VM Image Builder (Public Preview) service to build your custom image, no need to learn any tools, or setup build pipelines, simply providing an image configuration, and the Image Builder will create the Image. 詳細については、Azure VM Image Builder の概要に関する記事を参照してください。For more information, see Getting Started with Azure VM Image Builder.

さらに、Packer を使用してカスタム構成を作成することもできます。Additonally, use Packer to create your custom configuration. 詳細については、「Packer を使用して Azure に Linux 仮想マシンのイメージを作成する方法」を参照してください。For more information, see How to use Packer to create Linux virtual machine images in Azure.

イメージを作成する前に、次の項目が必要です。You'll need the following items before creating an image:

  • マネージド ディスクを使用する Resource Manager デプロイ モデルで作成された Azure VM。An Azure VM created in the Resource Manager deployment model that uses managed disks. Linux VM を作成していない場合は、ポータルAzure CLI、または Resource Manager テンプレートを使うことができます。If you haven't yet created a Linux VM, you can use the portal, the Azure CLI, or Resource Manager templates. 必要に応じて VM を構成します。Configure the VM as needed. たとえば、データ ディスクを追加し、更新プログラムを適用し、アプリケーションをインストールします。For example, add data disks, apply updates, and install applications.

  • 最新の Azure CLI がインストールされ、az login を使用して Azure アカウントにログインしています。The latest Azure CLI installed and be logged in to an Azure account with az login.

代わりにチュートリアルを利用する場合Prefer a tutorial instead?

この記事には簡易版があります。Azure VM の概要、テスト、評価については、「CLI を使用した Azure VM のカスタム イメージの作成」でも説明しています。For a simplified version of this article, and for testing, evaluating, or learning about VMs in Azure, see Create a custom image of an Azure VM by using the CLI. それ以外の場合は、この記事を読んで全体像を把握してください。Otherwise, keep reading here to get the full picture.

手順 1:VM のプロビジョニングを解除するStep 1: Deprovision the VM

まず Azure VM エージェントで VM のプロビジョニングを解除し、マシン固有のファイルとデータを削除します。First you'll deprovision the VM by using the Azure VM agent to delete machine-specific files and data. ソース Linux VM で -deprovision+user パラメーターを指定して waagent コマンドを実行します。Use the waagent command with the -deprovision+user parameter on your source Linux VM. 詳細については、「Azure Linux エージェント ユーザー ガイド」をご覧ください。For more information, see the Azure Linux Agent user guide.

  1. SSH クライアントを使って Linux VM に接続します。Connect to your Linux VM with an SSH client.

  2. SSH のウィンドウで、次のコマンドを入力します。In the SSH window, enter the following command:

    sudo waagent -deprovision+user
    

    注意

    このコマンドはイメージとしてキャプチャする VM に対して実行します。Only run this command on a VM that you'll capture as an image. このコマンドでは、イメージからすべての機密情報が削除されることや、イメージが再配布に適した状態になることが保証されるわけではありません。This command does not guarantee that the image is cleared of all sensitive information or is suitable for redistribution. +user パラメーターにより、前回プロビジョニングされたユーザー アカウントも削除されます。The +user parameter also removes the last provisioned user account. ユーザー アカウントの資格情報を VM に保持するには、-deprovision のみを使用します。To keep user account credentials in the VM, use only -deprovision.

  3. y」と入力して続行します。Enter y to continue. -force パラメーターを追加すると、この確認手順を省略できます。You can add the -force parameter to avoid this confirmation step.

  4. コマンドが完了したら、exit を入力して SSH クライアントを閉じます。After the command completes, enter exit to close the SSH client. この時点で、VM はまだ実行されています。The VM will still be running at this point.

手順 2:VM イメージを作成するStep 2: Create VM image

Azure CLI を使用し、一般化されたものとして VM を設定し、イメージをキャプチャします。Use the Azure CLI to mark the VM as generalized and capture the image. 次の例では、パラメーター名を独自の値を置き換えます。In the following examples, replace example parameter names with your own values. たとえば、myResourceGroupmyVnetmyVMといったパラメーター名にします。Example parameter names include myResourceGroup, myVnet, and myVM.

  1. az vm deallocate で、プロビジョニングを解除した VM の割り当てを解除します。Deallocate the VM that you deprovisioned with az vm deallocate. 次の例では、myResourceGroup という名前のリソース グループ内の myVM という VM の割り当てを解除します。The following example deallocates the VM named myVM in the resource group named myResourceGroup.

    az vm deallocate \
      --resource-group myResourceGroup \
      --name myVM
    

    先に進む前に、VM の割り当てが完全に解除されるまで待ちます。Wait for the VM to completely deallocate before moving on. これは完了するまでに数分かかる場合があります。This may take a few minutes to complete. VM は、割り当て解除中にシャットダウンされます。The VM is shut down during deallocation.

  2. az vm generalize を使用して VM の状態を一般化に設定します。Mark the VM as generalized with az vm generalize. 次の例では、myResourceGroup という名前のリソース グループ内の myVM という VM を一般化として設定します。The following example marks the VM named myVM in the resource group named myResourceGroup as generalized.

    az vm generalize \
      --resource-group myResourceGroup \
      --name myVM
    

    一般化された VM は再起動できなくなります。A VM that has been generalized can no longer be restarted.

  3. az image create で VM リソースのイメージを作成します。Create an image of the VM resource with az image create. 次の例では、myVM という名前の VM リソースを使用して myResourceGroup という名前のリソース グループに含まれる myImage という名前のイメージを作成します。The following example creates an image named myImage in the resource group named myResourceGroup using the VM resource named myVM.

    az image create \
      --resource-group myResourceGroup \
      --name myImage --source myVM
    

    注意

    このイメージは、ソース VM と同じリソース グループに作成されます。The image is created in the same resource group as your source VM. このイメージから、サブスクリプション内の任意のリソース グループに VM を作成できます。You can create VMs in any resource group within your subscription from this image. 管理の観点から、VM のリソースとイメージに専用のリソース グループを作成することをお勧めします。From a management perspective, you may wish to create a specific resource group for your VM resources and images.

    イメージをゾーン回復性のあるストレージに格納する場合は、可用性ゾーンをサポートするリージョンにストレージを作成し、--zone-resilient true パラメーターを含める必要があります。If you would like to store your image in zone-resilient storage, you need to create it in a region that supports availability zones and include the --zone-resilient true parameter.

このコマンドからは、VM イメージを記述する JSON が返されます。This command returns JSON that describes the VM image. 後で参照するためにこの出力を保存します。Save this output for later reference.

手順 3:キャプチャしたイメージから VM を作成するStep 3: Create a VM from the captured image

az vm create で、作成したイメージを使用して VM を作成します。Create a VM by using the image you created with az vm create. 次の例では、myImage という名前のイメージから myVMDeployed という名前の VM を作成します。The following example creates a VM named myVMDeployed from the image named myImage.

az vm create \
   --resource-group myResourceGroup \
   --name myVMDeployed \
   --image myImage\
   --admin-username azureuser \
   --ssh-key-value ~/.ssh/id_rsa.pub

別のリソース グループで VM を作成するCreating the VM in another resource group

サブスクリプション内の任意のリソース グループでイメージから VM を作成できます。You can create VMs from an image in any resource group within your subscription. イメージとは別のリソース グループに VM を作成するには、イメージに対する完全なリソース ID を指定します。To create a VM in a different resource group than the image, specify the full resource ID to your image. az image list を実行すると、イメージの一覧が表示されます。Use az image list to view a list of images. 出力は次の例のようになります。The output is similar to the following example.

"id": "/subscriptions/guid/resourceGroups/MYRESOURCEGROUP/providers/Microsoft.Compute/images/myImage",
   "location": "westus",
   "name": "myImage",

次の例では、az vm create を実行し、イメージ リソース ID を指定してソース イメージとは別のリソース グループに VM を作成します。The following example uses az vm create to create a VM in a resource group other than the source image, by specifying the image resource ID.

az vm create \
   --resource-group myOtherResourceGroup \
   --name myOtherVMDeployed \
   --image "/subscriptions/guid/resourceGroups/MYRESOURCEGROUP/providers/Microsoft.Compute/images/myImage" \
   --admin-username azureuser \
   --ssh-key-value ~/.ssh/id_rsa.pub

手順 4:デプロイを検証するStep 4: Verify the deployment

作成した仮想マシンに SSH を使用して接続し、デプロイを検証し、新しい VM の使用を開始します。SSH into the virtual machine you created to verify the deployment and start using the new VM. SSH を介して接続するには、az vm show を実行して、VM の IP アドレスか FQDN を見つけます。To connect via SSH, find the IP address or FQDN of your VM with az vm show.

az vm show \
   --resource-group myResourceGroup \
   --name myVMDeployed \
   --show-details

次の手順Next steps

ソース VM イメージから複数の VM を作成できます。You can create multiple VMs from your source VM image. イメージを変更するには:To make changes to your image:

  • イメージから VM を作成します。Create a VM from your image.
  • 必要な更新または構成の変更を行います。Make any updates or configuration changes.
  • 再度本記事の手順に従って、イメージのプロビジョニングの解除、割り当ての解除、一般化、作成を行います。Follow the steps again to deprovision, deallocate, generalize, and create an image.
  • 今後のデプロイには、この新しいイメージを使用します。Use this new image for future deployments. 元のイメージを削除することもできます。You may delete the original image.

CLI を使用して VM を管理する方法の詳細については、Azure CLI に関するページをご覧ください。For more information on managing your VMs with the CLI, see Azure CLI.