Share via


Criar uma imagem personalizada de um arquivo VHD com o PowerShell

No Azure DevTest Labs, é possível usar imagens personalizadas para:

  • Criar uma VM de um arquivo VHD que tenha todo o software necessário pré-instalado.
  • Criar VMs rapidamente, pois você não precisa instalar todos os softwares necessários nas máquinas de destino.
  • Clonar uma VM criando uma imagem personalizada de uma VM e, em seguida, criando VMs com base nessa imagem.

Pré-requisitos

Para este tutorial, você precisa de um arquivo VHD (disco rígido virtual) carregado na conta do Armazenamento do Microsoft Azure para o laboratório em que você deseja criar a imagem personalizada. Para carregar um arquivo VHD na sua conta de armazenamento, siga as instruções em um destes artigos:

Observação

Recomendamos que você use o módulo Az PowerShell do Azure para interagir com o Azure. Confira Instalar o Azure PowerShell para começar. Para saber como migrar para o módulo Az PowerShell, confira Migrar o Azure PowerShell do AzureRM para o Az.

etapas do PowerShell

As seguintes etapas orientam você durante a criação de uma imagem personalizada de um arquivo VHD usando o Azure PowerShell:

  1. Em um prompt de comando do PowerShell, entre em sua conta do Azure com o cmdlet Connect-AzAccount:

    Connect-AzAccount
    
  2. Selecione a assinatura do Azure com a qual deseja trabalhar usando o cmdlet Select-AzSubscription. Substitua <ID da assinatura> pelo GUID da sua ID da assinatura.

    $subscriptionId = '<subscription ID>'
    Select-AzSubscription -SubscriptionId $subscriptionId
    
  3. Obtenha o objeto de laboratório chamando o cmdlet Get-AzResource. Substitua os espaços reservados <lab resource group name> e <lab name> pelos seus nomes de grupo de recursos e laboratório.

    $labRg = '<lab resource group name>'
    $labName = '<lab name>'
    $lab = Get-AzResource -ResourceId ('/subscriptions/' + $subscriptionId + '/resourceGroups/' + $labRg + '/providers/Microsoft.DevTestLab/labs/' + $labName)
    
  4. Substitua o espaço reservado da variável $vhdUri pelo URI para seu 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 de VHD é: https://acontosolab1234.blob.core.windows.net/uploads/myvhd.vhd.

    $vhdUri = '<VHD URI>'
    
  5. Crie a imagem personalizada usando o cmdlet New-AzResourceGroupDeployment. Substitua os espaços reservados <custom image name> e <custom image description> pelo nome e pela descrição que você deseja.

    $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
    

Concluir script do PowerShell

A combinação das etapas anteriores produz o seguinte script do PowerShell que cria uma imagem personalizada de um arquivo VHD. Para usar o script, substitua os seguintes marcadores de posição pelos seus próprios valores:

  • <ID da assinatura>
  • <lab resource group name>
  • <lab name>
  • <VHD URI>
  • <custom image name>
  • <custom image description>
# 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

Próximas etapas