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.
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.
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
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