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

カスタム イメージは Marketplace のイメージに似ていますが、カスタム イメージは自分で作成します。Custom images are like marketplace images, but you create them yourself. カスタム イメージは、アプリケーションのプリロード、アプリケーションの構成、その他の OS 構成などの構成のブートストラップを実行するために使用できます。Custom images can be used to bootstrap configurations such as preloading applications, application configurations, and other OS configurations. このチュートリアルでは、Azure 仮想マシンの独自のカスタム イメージを作成します。In this tutorial, you create your own custom image of an Azure virtual machine. 学習内容は次のとおりです。You learn how to:

  • VM のプロビジョニングを解除して汎用化するDeprovision 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 Cloud Shell を開くOpen Azure Cloud Shell

Azure Cloud Shell は無料のインタラクティブ シェルです。この記事の手順は、Azure Cloud Shell を使って実行することができます。Azure Cloud Shell is a free, interactive shell that you can use to run the steps in this article. Cloud Shell には一般的な Azure ツールが事前にインストールされており、アカウントで使用できるように構成されています。Common Azure tools are preinstalled and configured in Cloud Shell for you to use with your account. [コピー] ボタンを選択してコードをコピーし、Cloud Shell に貼り付けて Enter キーを押すだけで、コードを実行することができます。Just select the Copy button to copy the code, paste it in Cloud Shell, and then press Enter to run it. Cloud Shell は、次のようにいくつかの方法で開くことができます。There are a few ways to open Cloud Shell:

コード ブロックの右上隅にある [使ってみる] を選択します。Select Try It in the upper-right corner of a code block. この記事の Cloud Shell
ブラウザーで Cloud Shell を開きます。Open Cloud Shell in your browser. https://shell.azure.com/bash
Azure Portal の右上隅にあるメニューの [Cloud Shell] ボタンを選択します。Select the Cloud Shell button on the menu in the upper-right corner of the Azure portal. ポータルの Cloud Shell

CLI をローカルにインストールして使用する場合、このチュートリアルでは、Azure CLI バージョン 2.0.30 以降を実行していることが要件です。If you choose to install and use the CLI locally, this tutorial requires that you are running the Azure CLI version 2.0.30 or later. バージョンを確認するには、az --version を実行します。Run az --version to find the version. インストールまたはアップグレードする必要がある場合は、Azure CLI のインストールに関するページを参照してください。If you need to install or upgrade, see Install Azure CLI.

開始する前にBefore you begin

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

カスタム イメージを作成するCreate a custom image

仮想マシンのイメージを作成するには、ソース VM のプロビジョニングと割り当てを解除し、汎用とマークすることで VM を準備する必要があります。To create an image of a virtual machine, you need to prepare the VM by deprovisioning, deallocating, and then marking the source VM as generalized. VM を準備できたら、イメージを作成することができます。Once the VM has been prepared, you can create an image.

VM のプロビジョニングを解除するDeprovision the VM

プロビジョニングを解除すると、マシン固有の情報が削除されるため、VM が汎用化されます。Deprovisioning generalizes the VM by removing machine-specific information. この汎用化によって、1 つのイメージから多数の VM をデプロイできるようになります。This generalization makes it possible to deploy many VMs from a single image. プロビジョニングの解除の際に、ホスト名は localhost.localdomain にリセットされます。During deprovisioning, the host name is reset to localhost.localdomain. SSH ホスト キー、ネームサーバー構成、ルート パスワード、およびキャッシュされた DHCP リースも削除されます。SSH host keys, nameserver configurations, root password, and cached DHCP leases are also deleted.

VM のプロビジョニングを解除するには、Azure VM エージェント (waagent) を使用します。To deprovision the VM, use the Azure VM agent (waagent). Azure VM エージェントは VM にインストールして、プロビジョニングと Azure ファブリック コントローラーとのやり取りの管理に使用します。The Azure VM agent is installed on the VM and manages provisioning and interacting with the Azure Fabric Controller. 詳細については、「Azure Linux エージェント ユーザー ガイド」をご覧ください。For more information, see the Azure Linux Agent user guide.

SSH を使用して VM に接続し、VM のプロビジョニングを解除するコマンドを実行します。Connect to your VM using SSH and run the command to deprovision the VM. +user 引数を使用して、前回プロビジョニングされたユーザー アカウントおよび関連付けられたデータも削除します。With the +user argument, the last provisioned user account and any associated data are also deleted. サンプルの IP アドレスは、使用している VM のパブリック IP アドレスで置き換えてください。Replace the example IP address with the public IP address of your VM.

VM に SSH 接続します。SSH to the VM.

ssh azureuser@52.174.34.95

VM のプロビジョニングを解除します。Deprovision the VM.

sudo waagent -deprovision+user -force

SSH セッションを閉じます。Close the SSH session.

exit

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

イメージを作成するには、VM の割り当てを解除する必要があります。To create an image, the VM needs to be deallocated. az vm deallocate を使用して VM の割り当てを解除します。Deallocate the VM using az vm deallocate.

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

最後に、az vm generalize を使用して VM の状態を一般化済みと設定すると、Azure プラットフォームは、VM が一般化されたことを認識します。Finally, set the state of the VM as generalized with az vm generalize so the Azure platform knows the VM has been generalized. イメージを作成できるのは、一般化された VM からのみです。You can only create an image from a generalized VM.

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

イメージの作成Create the image

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

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

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

イメージが用意できたので、az vm create を使用して、イメージから新しい VM を 1 つ以上作成できます。Now that you have an image, you can create one or more new VMs from the image using az vm create. 次の例では、myImage という名前のイメージから myVMfromImage という名前の VM を作成します。The following example creates a VM named myVMfromImage from the image named myImage.

az vm create \
    --resource-group myResourceGroup \
    --name myVMfromImage \
    --image myImage \
    --admin-username azureuser \
    --generate-ssh-keys

イメージの管理Image management

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

すべてのイメージを、名前によって表形式で一覧表示します。List all images by name in a table format.

az image list \
    --resource-group myResourceGroup

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

az image delete \
    --name myOldImage \
    --resource-group myResourceGroup

次の手順Next steps

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

  • VM のプロビジョニングを解除して汎用化するDeprovision 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 highly available virtual machines.