イメージ作成前に VM をプロビジョニング解除または一般化し、マシン固有の情報を削除します

注意

この記事では、間もなくサポート終了 (EOL) 状態になる Linux ディストリビューションである CentOS について説明します。 それに応じて、使用と計画を検討してください。

ユーザー アカウントなどのマシン固有の情報がないイメージを特に作成したい場合を除き、Azure Compute Gallery でイメージを作成するために VM を一般化したりプロビジョニング解除したりする必要はありません。 ただしギャラリーの外でマネージド イメージを作成する場合は、一般化が必要になります。

一般化でマシン固有の情報が削除され、複数の VM 作成にイメージを使用できます。 VM が一般化またはプロビジョニング解除されたら、起動シーケンスを正しく設定できるよう、プラットフォームに認識させる必要があります。

重要

Azure で VM を generalized としてマークすると、その VM を再起動することはできません。

前提条件

なし

Linux

Azure 用に Linux イメージを準備するためのディストリビューション固有の手順については、以下をを参照してください。

次の手順では、VM を汎用化に設定する方法についてのみ説明します。 運用環境のワークロードについては、ディストリビューション固有の手順に従うことをお勧めします。

まず Azure VM エージェントで VM のプロビジョニングを解除し、マシン固有のファイルとデータを削除します。 ソース Linux VM で -deprovision+user パラメーターを指定して waagent コマンドを実行します。 詳細については、「Azure Linux エージェント ユーザー ガイド」をご覧ください。 これは、元に戻すことができない処理です。

  1. SSH クライアントを使用して Linux VM に接続します。

  2. SSH のウィンドウで、次のコマンドを入力します。

       sudo waagent -deprovision+user
    

    Note

    このコマンドはイメージとしてキャプチャする VM に対して実行します。 このコマンドでは、イメージからすべての機密情報が削除されることや、イメージが再配布に適した状態になることが保証されるわけではありません。 +user パラメーターにより、前回プロビジョニングされたユーザー アカウントも削除されます。 ユーザー アカウントの資格情報を VM に保持するには、-deprovision のみを使用します。

  3. y」と入力して続行します。 -force パラメーターを追加すると、この確認手順を省略できます。

  4. コマンドが完了したら、exit を入力して SSH クライアントを閉じます。 この時点で、VM はまだ実行されています。

    az vm deallocate でプロビジョニング解除した VM の割り当てを解除して、一般化できるようにします。

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

    その後、VM をプラットフォームで一般化済みとしてマークする必要があります。

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

Windows

Sysprep はすべての個人アカウント情報とセキュリティ情報を削除して、マシンをイメージとして使用できるように準備します。 Sysprep については、Sysprep の概要を参照してください。

コンピューター上で実行されるサーバー ロールが Sysprep でサポートされていることを確認します。 詳細については、「サーバーの役割の Sysprep サポート」と「サポートされていないシナリオ」を参照してください。

重要

VM で Sysprep を実行すると、その VM は一般化されていると見なされ、再起動できなくなります。 VM の一般化プロセスは元に戻せません。 元の VM を機能させ続ける必要がある場合は、OS ディスクのスナップショットを作成し、スナップショットから VM を作成し、その VM のコピーを一般化する必要があります。

Sysprep では、ドライブを完全に復号化する必要があります。 VM で暗号化を有効にしている場合は、Sysprep を実行する前に暗号化を無効にしてください。

初めて VHD を Azure に仮想ハード ディスク (VHD) にアップロードする前に Sysprep を実行する予定の場合は、VM の準備ができていることを確認してください。

sysprep ステップではカスタム応答ファイルがサポートされていないため、sysprep コマンドで「/unattend:answerfile」スイッチを使用しないでください。

一般化されたイメージから Windows VM が作成されると、Azure プラットフォームは、ISO ファイルを DVD-ROM にマウントします。 このため、一般化されたイメージの OS で DVD-ROM が有効になっている必要があります。 無効になっている場合、Windows VM は OOBE (Out-of-Box Experience) でスタックします。

Windows VM を一般化するには、次の手順に従います。

  1. Windows VM にサインインします。

  2. 管理者としてコマンド プロンプト ウィンドウを開きます。

  3. panther ディレクトリ (C:\Windows\Panther) を削除します。

  4. CD/DVD-ROM が有効になっているかどうかを確認します。 無効になっている場合、Windows VM は OOBE (Out-of-Box Experience) でスタックします。

      Registry key Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\cdrom\start (Value 4 = disabled, expected value 1 = automatic) Make sure it is set to 1.
    

    Note

    リムーバブル記憶域アクセスを制限するポリシーが適用されているかどうかを確認します (例: コンピューターの構成\管理用テンプレート\システム\リムーバブル記憶域アクセス\すべてのリムーバブル 記憶域クラス: すべてのアクセスを拒否)

  5. 次に、ディレクトリを %windir%\system32\sysprep に変更して、次を実行します。

    sysprep.exe /generalize /shutdown
    
  6. Sysprep で VM の一般化が完了すると、VM はシャットダウンされます。 VM は再起動しないでください。

    Sysprep が完了したら、仮想マシンのステータスを [一般化] に設定します。

    Set-AzVm -ResourceGroupName $rgName -Name $vmName -Generalized