チュートリアル: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 でホストされる対話型のシェル環境で、ブラウザーを介して使用されます。Azure Cloud Shell is an interactive shell environment hosted in Azure and used through your browse. Azure Cloud Shell では、bash または PowerShell のいずれかのシェルを使用して、Azure サービスで動作するさまざまなツールを実行できます。Azure Cloud Shell allows you to use either bash or PowerShell shells to run a variety of tools to work with Azure services. Azure Cloud Shell にはコマンドがプレインストールされており、ローカル環境に何もインストールしなくても、この記事の内容を実行できるようになっています。Azure Cloud Shell comes pre-installed with the commands to allow you to run the content of this article without having to install anything on your local environment.

この記事に含まれるコードを Azure Cloud Shell で実行するには、Cloud Shell セッションを開き、コード ブロック上の [コピー] ボタンを使ってコードをコピーし、Ctrl + Shift + V キー (Windows と Linux) または command + Shift + V キー (macOS) を押して Cloud Shell セッションに貼り付けます。To run any code contained in this article on Azure Cloud Shell, open a Cloud Shell session, use the Copy button on a code block to copy the code, and paste it into the Cloud Shell session with Ctrl+Shift+V on Windows and Linux, or Cmd+Shift+V on macOS. テキストを貼り付けても自動的には実行されません。コードを実行するには、Enter キーを押します。Pasted text is not automatically executed, so press Enter to run code.

Azure Cloud Shell は次の方法で起動できます。You can launch Azure Cloud Shell with:

コード ブロックの右上隅にある [使ってみる] を選択します。Select Try It in the upper-right corner of a code block. テキストが自動的に Cloud Shell にコピーされるわけでは__ありません__。This doesn't automatically copy text to Cloud Shell. Azure Cloud Shell の [使ってみる] の例
ブラウザーで shell.azure.com を開きます。Open shell.azure.com in your browser. Azure Cloud Shell の起動ボタンLaunch Azure Cloud Shell button
Azure Portal の右上隅にあるメニューの [Cloud Shell] ボタンを選択します。Select the Cloud Shell button on the menu in the upper-right corner of the Azure portal. 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.