次の方法で共有


PowerShell を使用して VHD ファイルからカスタム イメージを作成する

Azure DevTest Labs では、カスタム イメージを使用して次のことを行うことができます。

  • 必要なすべてのソフトウェアがプレインストール済みの VHD ファイルから VM を作成します。
  • 必要なすべてのソフトウェアをターゲット コンピューターにインストールする必要がないため、VM をすばやく作成できます。
  • VM からカスタム イメージを作成し、そのイメージに基づいて VM を作成して、VM を複製します。

前提条件

このチュートリアルを実行するには、カスタム イメージを作成するラボの Azure Storage アカウントに仮想ハード ディスク (VHD) ファイルがアップロードされている必要があります。 VHD ファイルをストレージ アカウントにアップロードするには、次のいずれかの記事の手順に従います。

注意

Azure を操作するには、Azure Az PowerShell モジュールを使用することをお勧めします。 作業を始めるには、Azure PowerShell のインストールに関する記事をご覧ください。 Az PowerShell モジュールに移行する方法については、「AzureRM から Az への Azure PowerShell の移行」を参照してください。

PowerShell ステップ

次の手順で、Azure PowerShell を使用して VHD ファイルからカスタム イメージを作成します。

  1. PowerShell コマンド プロンプトで、Connect-AzAccount コマンドレットを使用して Azure アカウントにサインインします。

    Connect-AzAccount
    
  2. Select-AzSubscription コマンドレットを使って、Azure サブスクリプションを選択します。 <サブスクリプション ID> を実際のサブスクリプション ID GUID に置き換えます。

    $subscriptionId = '<subscription ID>'
    Select-AzSubscription -SubscriptionId $subscriptionId
    
  3. Get-AzResource コマンドレットを呼び出して、ラボ オブジェクトを取得します。 <ラボのリソース グループ名> と <ラボ名> のプレースホルダーは、実際のリソース グループとラボの名前に置き換えます。

    $labRg = '<lab resource group name>'
    $labName = '<lab name>'
    $lab = Get-AzResource -ResourceId ('/subscriptions/' + $subscriptionId + '/resourceGroups/' + $labRg + '/providers/Microsoft.DevTestLab/labs/' + $labName)
    
  4. $vhdUri 変数のプレース ホルダーを、アップロードした VHD ファイルの URI に置き換えます。 VHD ファイルの URI は、Azure portal でラボのストレージアカウントの BLOB ページから取得できます。 VHD URI の例を次に示します: https://acontosolab1234.blob.core.windows.net/uploads/myvhd.vhd

    $vhdUri = '<VHD URI>'
    
  5. New-AzResourceGroupDeployment コマンドレットを使用してカスタム イメージを作成します。 <カスタム イメージ名> と <カスタム イメージの説明> のプレースホルダーは、目的の名前と説明に置き換えます。

    $customImageName = '<custom image name>'
    $customImageDescription = '<custom image description>'
    
    $parameters = @{existingLabName="$($lab.Name)"; existingVhdUri=$vhdUri; imageOsType='windows'; isVhdSysPrepped=$false; imageName=$customImageName; imageDescription=$customImageDescription}
    
    New-AzResourceGroupDeployment -ResourceGroupName $lab.ResourceGroupName -Name CreateCustomImage -TemplateUri 'https://raw.githubusercontent.com/Azure/azure-devtestlab/master/samples/DevTestLabs/QuickStartTemplates/201-dtl-create-customimage-from-vhd/azuredeploy.json' -TemplateParameterObject $parameters
    

完全な PowerShell スクリプト

これまでの手順を組み合わせると、VHD ファイルからカスタムイメージを作成する次の PowerShell スクリプトが生成されます。 このスクリプトを使用するには、次のプレースホルダーを実際の値に置き換えます。

  • <サブスクリプション ID>
  • <リソース グループ名>
  • <ラボ名>
  • <VHD の URI>
  • <カスタム イメージ名>
  • <カスタム イメージの説明>
# Log in to your Azure account.
Connect-AzAccount

# Select the desired Azure subscription.
$subscriptionId = '<subscription ID>'
Select-AzSubscription -SubscriptionId $subscriptionId

# Get the lab object.
$labRg = '<lab resource group name>'
$labName = '<lab name>'
$lab = Get-AzResource -ResourceId ('/subscriptions/' + $subscriptionId + '/resourceGroups/' + $labRg + '/providers/Microsoft.DevTestLab/labs/' + $labName)

# Set the URI of the VHD file.
$vhdUri = '<VHD URI>'

# Set the custom image name and description values.
$customImageName = '<custom image name>'
$customImageDescription = '<custom image description>'

# Set up the parameters object.
$parameters = @{existingLabName="$($lab.Name)"; existingVhdUri=$vhdUri; imageOsType='windows'; isVhdSysPrepped=$false; imageName=$customImageName; imageDescription=$customImageDescription}

# Create the custom image.
New-AzResourceGroupDeployment -ResourceGroupName $lab.ResourceGroupName -Name CreateCustomImage -TemplateUri 'https://raw.githubusercontent.com/Azure/azure-devtestlab/master/samples/DevTestLabs/QuickStartTemplates/201-dtl-create-customimage-from-vhd/azuredeploy.json' -TemplateParameterObject $parameters

次の手順