你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
使用 PowerShell 基于 VHD 文件创建自定义映像
在 Azure 开发测试实验室中,可以使用自定义映像来执行以下操作:
- 从预安装了所有你需要的软件的 VHD 文件创建一个 VM。
- 快速创建 VM,因为无需在目标计算机上安装所有必需的软件。
- 通过从一个 VM 创建自定义映像,然后基于该映像创建 VM 来克隆 VM。
先决条件
若要完成本教程,需要一个虚拟硬盘 (VHD) 文件,并且该文件已上传到要在其中创建自定义映像的实验室的 Azure 存储帐户。 若要将 VHD 文件上传到存储帐户,请按照以下文章之一中的说明进行操作:
注意
建议使用 Azure Az PowerShell 模块与 Azure 交互。 若要开始,请参阅安装 Azure PowerShell。 若要了解如何迁移到 Az PowerShell 模块,请参阅 将 Azure PowerShell 从 AzureRM 迁移到 Az。
PowerShell 步骤
以下步骤将引导你完成使用 Azure PowerShell 基于 VHD 文件创建自定义映像的过程:
在 PowerShell 命令提示符处,登录 Azure 帐户,请运行 Connect-AzAccount cmdlet:
Connect-AzAccount
通过 Select-AzSubscription cmdlet 选择 Azure 订阅。 请将 <订阅 ID> 替换为你的订阅 ID GUID。
$subscriptionId = '<subscription ID>' Select-AzSubscription -SubscriptionId $subscriptionId
通过调用 Get-AzResource cmdlet 获取实验室对象。 将 <实验室资源组名称> 和 <实验室名称> 占位符替换为自己的资源组和实验室名称。
$labRg = '<lab resource group name>' $labName = '<lab name>' $lab = Get-AzResource -ResourceId ('/subscriptions/' + $subscriptionId + '/resourceGroups/' + $labRg + '/providers/Microsoft.DevTestLab/labs/' + $labName)
将 $vhdUri 变量占位符替换为已上传 VHD 文件的 URI。 你可以从 Azure 门户的实验室存储帐户中的 blob 页获得 VHD 文件的 URI。 VHD URI 示例为:
https://acontosolab1234.blob.core.windows.net/uploads/myvhd.vhd
。$vhdUri = '<VHD URI>'
使用 New-AzResourceGroupDeployment cmdlet 创建自定义映像。 将 <自定义映像名称> 和 <自定义映像说明> 占位符替换为所需的名称和说明。
$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 脚本
结合上述步骤可生成以下 PowerShell 脚本,该脚本基于 VHD 文件创建自定义映像。 若要使用脚本,请将以下占位符替换为你自己的值:
- <订阅 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