Criar uma imagem personalizada a partir de um arquivo VHD com o PowerShell
No Azure DevTest Labs, você pode usar imagens personalizadas para:
- Crie uma VM a partir de um arquivo VHD que tenha todo o software que você precisa pré-instalado.
- Crie VMs rapidamente, porque você não precisa instalar todo o software necessário nas máquinas de destino.
- Clone uma VM criando uma imagem personalizada a partir de uma VM e, em seguida, criando VMs com base nessa imagem.
Pré-requisitos
Para trabalhar neste tutorial, você precisa de um arquivo de disco rígido virtual (VHD) carregado na conta de Armazenamento do Azure para o laboratório onde deseja criar a imagem personalizada. Para carregar um ficheiro VHD para a sua conta de armazenamento, siga as instruções num destes artigos:
- Carregue um arquivo VHD usando o utilitário de linha de comando AzCopy.
- Carregue um arquivo VHD usando o Gerenciador de Armazenamento do Microsoft Azure.
- Carregue um arquivo VHD usando o PowerShell.
Nota
Recomendamos que utilize o módulo Azure Az do PowerShell para interagir com o Azure. Para começar, consulte Instalar o Azure PowerShell. Para saber como migrar para o módulo do Az PowerShell, veja Migrar o Azure PowerShell do AzureRM para o Az.
Etapas do PowerShell
As etapas a seguir orientam você na criação de uma imagem personalizada a partir de um arquivo VHD usando o Azure PowerShell:
Em um prompt de comando do PowerShell, entre em sua conta do Azure com o cmdlet Connect-AzAccount :
Connect-AzAccount
Selecione sua assinatura do Azure com o cmdlet Select-AzSubscription . Substitua <o ID da> assinatura pelo GUID do ID da assinatura.
$subscriptionId = '<subscription ID>' Select-AzSubscription -SubscriptionId $subscriptionId
Obtenha o objeto de laboratório chamando o cmdlet Get-AzResource . Substitua o nome> do grupo de recursos de laboratório e <os espaços reservados de nome> de <laboratório por seu próprio grupo de recursos e nomes de laboratório.
$labRg = '<lab resource group name>' $labName = '<lab name>' $lab = Get-AzResource -ResourceId ('/subscriptions/' + $subscriptionId + '/resourceGroups/' + $labRg + '/providers/Microsoft.DevTestLab/labs/' + $labName)
Substitua o espaço reservado para a variável $vhdUri pelo URI do arquivo VHD carregado. Você pode obter o URI do arquivo VHD de sua página de blob na conta de armazenamento do laboratório no portal do Azure. Um exemplo de URI VHD é:
https://acontosolab1234.blob.core.windows.net/uploads/myvhd.vhd
.$vhdUri = '<VHD URI>'
Crie a imagem personalizada usando o cmdlet New-AzResourceGroupDeployment . Substitua o nome> da imagem personalizada e <os <espaços reservados para descrição> da imagem personalizada pelo nome e descrição desejados.
$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
Script completo do PowerShell
A combinação das etapas anteriores produz o seguinte script do PowerShell que cria uma imagem personalizada a partir de um arquivo VHD. Para usar o script, substitua os seguintes espaços reservados por seus próprios valores:
- <ID da subscrição>
- <Nome do grupo de recursos de laboratório>
- <nome do laboratório>
- <VHD URI>
- <nome da imagem personalizada>
- <Descrição da imagem personalizada>
# 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