Compartilhar via


Solucionar problemas do Construtor de Imagens de VM do Azure

Aplica-se a: ✔️ VMs do Linux ✔️ Conjuntos de dimensionamento flexíveis

Use este artigo para solucionar problemas comuns que você pode encontrar ao usar o Construtor de Imagens de VM do Azure.

Falhas no Construtor de Imagens de VM podem ocorrer em duas áreas:

  • Durante o envio do modelo de imagem
  • Durante a criação de imagens

Pré-requisitos

Esses pré-requisitos são para criar um build:

  • O serviço construtor de imagens da VM se comunica com a VM (máquina virtual de build) usando o WinRM (Gerenciamento Remoto do Windows) ou o Secure Shell (SSH). Não desabilite essas configurações como parte do build.

  • O Criador de Imagens de VM cria recursos no grupo de recursos de preparação como parte das compilações. A lista exata de recursos depende da configuração de rede especificada pelo modelo de imagem. Verifique se o Azure Policy não impede que o Construtor de Imagens de VM crie ou use os recursos necessários.

  • Verifique se o Azure Policy não instala recursos não intencionais na VM de build ou em outros recursos de preparo, como extensões do Azure ou modificações de marca.

  • Verifique se o Construtor de Imagens de VM tem as permissões corretas para ler/gravar imagens e conectar-se à conta de armazenamento. Para obter mais informações, examine a documentação de permissões para a CLI do Azure ou o Azure PowerShell.

  • O Construtor de Imagens de VM falhará no build se os scripts ou comandos embutidos falharem com erros (códigos de saída diferentes de zero). Verifique se você testou os scripts personalizados e verificou que eles são executados sem erro (código 0de saída) ou exigem entrada do usuário. Para obter mais informações, veja Criar uma imagem da Área de Trabalho Virtual do Azure usando o Construtor de Imagens de VM e o PowerShell.

  • Verifique se a assinatura tem cota suficiente para Instâncias de Contêiner do Azure.

    Cada build de imagem pode implantar até um recurso temporário de Instâncias de Contêiner do Azure (com quatro núcleos padrão) no grupo de recursos de preparo. Esses recursos são necessários para compilações de imagens isoladas.

Observação

Imagens Protegidas CIS (Linux ou Windows) no Azure Marketplace, gerenciadas pelo Center for Internet Security (CIS), podem causar falhas de build com o serviço Construtor de Imagens de VM devido às suas configurações. Por exemplo:

  • Imagens Protegidas CIS para Windows podem interromper a conectividade WinRM, um pré-requisito para builds do Construtor de Imagens de VM.
  • Imagens Protegidas CIS para Linux podem falhar devido a problemas de permissão de chmod +x.

Solucionar problemas no envio do modelo de imagem

Erros de envio do modelo de imagem são retornados somente no momento do envio. Não existe nenhum log de erros para erros de envio de modelo de imagem. Se houver um erro durante o envio, você poderá retornar o erro verificando o status do modelo. Especificamente, examine ProvisioningState e ProvisioningErrorMessage/provisioningError.

Este é o comando da CLI do Azure:

az image builder show --name $imageTemplateName  --resource-group $imageResourceGroup

Este é o comando do Azure PowerShell. Para usar o Azure PowerShell, você precisa instalar os módulos do PowerShell do Construtor de Imagens da VM.

Get-AzImageBuilderTemplate -ImageTemplateName  <imageTemplateName> -ResourceGroupName <imageTemplateResourceGroup> | Select-Object ProvisioningState, ProvisioningErrorMessage

Veja a saída de erro para a versão 2020-02-14 e anteriores:

{
  "code": "ValidationFailed",
  "message": "Validation failed: 'ImageTemplate.properties.source': Field 'imageId' has a bad value: '/subscriptions/subscriptionID/resourceGroups/resourceGroupName/providers/Microsoft.Compute/images/imageName'. Please review  http://aka.ms/azvmimagebuildertmplref  for details on fields requirements in the Image Builder Template."
}

Aqui está a saída de erro para a versão 2021-10-01 e posterior:

{
  "error": {
    "code": "ValidationFailed",
    "message": "Validation failed: 'ImageTemplate.properties.source': Field 'imageId' has a bad value: '/subscriptions/subscriptionID/resourceGroups/resourceGroupName/providers/Microsoft.Compute/images/imageName'. Please review  http://aka.ms/azvmimagebuildertmplref  for details on fields requirements in the Image Builder Template."
  }
}

Importante

A versão da API 01-10-2021 apresenta uma alteração no esquema de erro que fará parte de cada versão futura da API. Se você tiver alguma automação do Construtor de Imagens de VM do Azure, lembre-se da nova saída de erro ao alternar para a versão 2021-10-01 ou posterior da API.

Recomendamos, depois de alternar para a versão mais recente da API, que você não reverta para uma versão anterior. Se você reverter, precisará alterar sua automação novamente para gerar o esquema de erro anterior. Não esperamos que o esquema de erros seja alterado novamente em versões futuras.

As seções a seguir apresentam diretrizes de resolução de problemas para erros comuns no envio do modelo de imagem.

No momento, não há suporte para atualização de modelos de imagem

Erro

'Conflict'. Details: Update/Upgrade of image templates is currently not supported

Causa

O modelo já existe.

Solução

Se você enviar um modelo de configuração de imagem e o envio falhar, ainda existirá um artefato de modelo com falha. Exclua o modelo com falha.

A identidade gerenciada atribuída em um modelo de imagem não pode ser usada

Erro

The assigned managed identity cannot be used. Please remove the existing one and re-assign a new identity. For more troubleshooting steps go to https://aka.ms/azvmimagebuilderts.

Causa

Há casos em que uma identidade gerenciada criada atribuída ao modelo de imagem não pode ser usada.

Uma causa possível é que o modelo do Construtor de Imagens da VM usa um grupo de recursos de preparo fornecido pelo cliente e a identidade gerenciada é excluída antes que o modelo de imagem seja excluído. (Este é um cenário com grupo de recursos de homologação.)

Solução

Use a CLI do Azure para redefinir a identidade gerenciada no modelo de imagem. Certifique-se de atualizar a CLI do Azure para a versão 2.45.0 ou posterior.

Confirme a identidade gerenciada do modelo de Construtor de Imagens de VM de destino:

az image builder identity show -g <template resource group> -n <template name> 

Remova a identidade gerenciada do modelo do Construtor de Imagens da VM de destino:

az image builder identity remove -g <template resource group> -n <template name> --user-assigned <identity resource id>

Atribua uma nova identidade ao modelo do Construtor de Imagens da VM de destino:

az image builder identity assign -g <template rg> -n <template name> --user-assigned <identity resource id>

Para obter mais informações sobre como configurar permissões, veja Configurar permissões do Construtor de Imagens de VM usando a CLI do Azure ou Configurar permissões do Construtor de Imagens de VM usando o PowerShell.

A identidade gerenciada atribuída não está autorizada a acessar um recurso

Erro

Not authorized to access the resource: <resource-not-able-to-access>. Please check the user assigned identity has the correct permissions. For more details, go to https://aka.ms/azvmimagebuilderts.

Causa

A identidade gerenciada criada atribuída ao modelo de imagem não tem todas as permissões para acessar o recurso compartilhado na mensagem de erro.

Solução

Confirme a identidade gerenciada a partir do modelo do Image Builder da VM de destino.

az image builder identity show -g <template resource group> -n <template name> 

Examine as atribuições de função para a identidade:

az role assignment list --assignee <identity_client_id_or_principal_id>

Atribua a função necessária. Se necessário, crie sua função com as permissões necessárias.

Para obter mais informações sobre como configurar permissões, veja Configurar permissões do Construtor de Imagens de VM usando a CLI do Azure ou Configurar permissões do Construtor de Imagens de VM usando o PowerShell.

A operação de recurso foi concluída com um estado de provisionamento terminal de "Falha"

Erro

Microsoft.VirtualMachineImages/imageTemplates 'helloImageTemplateforSIG01' failed with message '{
  "status": "Failed",
  "error": {
    "code": "ResourceDeploymentFailure",
    "message": "The resource operation completed with terminal provisioning state 'Failed'.",
    "details": [
      {
        "code": "InternalOperationError",
        "message": "Internal error occurred."

Causa

Na maioria dos casos, o erro sobre a falha na implantação de recursos ocorre devido a permissões ausentes. Um conflito com o grupo de recursos de preparo também pode causar esse erro.

Solução

Dependendo do cenário, o Construtor de Imagens de VM pode precisar de permissões para:

  • A imagem de origem ou do grupo de recursos da Galeria de Computação do Azure (anteriormente Galeria de Imagens Compartilhadas).
  • A imagem de distribuição ou recurso da Galeria de Computação do Azure.
  • A conta de armazenamento, o contêiner ou o blob que o File customizador está acessando.

Além disso, verifique se o nome do grupo de recursos de preparo é especificado exclusivamente para cada modelo de imagem.

Para obter mais informações sobre como configurar permissões, veja Configurar permissões do Construtor de Imagens de VM usando a CLI do Azure ou Configurar permissões do Construtor de Imagens de VM usando o PowerShell.

Ocorre um erro ao obter uma imagem gerenciada

Erro

Build (Managed Image) step failed: Error getting Managed Image '/subscriptions/.../providers/Microsoft.Compute/images/mymanagedmg1': Error getting managed image (...): compute.
ImagesClient#Get: Failure responding to request: StatusCode=403 -- Original Error: autorest/azure: Service returned an error.
Status=403 Code="AuthorizationFailed" Message="The client '......' with object id '......' doesn't have authorization to perform action 'Microsoft.Compute/images/read' over scope

Causa

Permissões ausentes.

Solução

Dependendo do cenário, o Construtor de Imagens de VM pode precisar de permissões para:

  • A imagem de origem ou grupo de recursos da Galeria de Computação do Azure.
  • A imagem de distribuição ou recurso da Galeria de Computação do Azure.
  • A conta de armazenamento, o contêiner ou o blob que o File customizador está acessando.

Para obter mais informações sobre como configurar permissões, veja Configurar permissões do Construtor de Imagens de VM usando a CLI do Azure ou Configurar permissões do Construtor de Imagens de VM usando o PowerShell.

A etapa de build falhou para a versão da imagem

Erro

Build (Shared Image Version) step failed for Image Version '/subscriptions/.../providers/Microsoft.Compute/galleries/.../images/... /versions/0.23768.4001': Error getting Image Version '/subscriptions/.../resourceGroups/<rgName>/providers/Microsoft.Compute/galleries/.../images/.../versions/0.23768.4001': Error getting image version '... :0.23768.4001': compute.GalleryImageVersionsClient#Get: Failure responding to request: StatusCode=404 -- Original Error: autorest/azure: Service returned an error.
Status=404 Code="ResourceNotFound" Message="The Resource 'Microsoft.Compute/galleries/.../images/.../versions/0.23768.4001' under resource group '<rgName>' was not found."

Causa

O Construtor de Imagens de VM não pode localizar a imagem de origem.

Solução

Verifique se a imagem de origem está correta e existe na localização do Construtor de Imagens de VM.

Erro ao baixar um arquivo externo para um arquivo local

Erro

Downloading external file (<myFile>) to local file (xxxxx.0.customizer.fp) [attempt 1 of 10] failed: Error downloading '<myFile>' to 'xxxxx.0.customizer.fp'..

Causa

A localização ou o nome do arquivo está incorreto ou a localização não é acessível.

Solução

Verifique se o arquivo é acessível. Verifique se a localização e o nome estão corretos.

Determinados repositórios de arquivos podem usar conjuntos de criptografia sem suporte e causar erros de download com o Construtor de Imagens da VM. Armazene arquivos e scripts em uma conta de armazenamento do Azure para ajudar a garantir conjuntos de criptografia seguros e acessibilidade pelo Construtor de Imagens da VM. Para obter mais informações sobre como armazenar seus arquivos em contas de armazenamento do Azure, consulte a visão geral da conta de armazenamento.

O erro de autorização ocorre com a criação de um disco

O build do Construtor de Imagens da VM falha com um erro de autorização semelhante ao exemplo a seguir.

Erro

Attempting to deploy created Image template in Azure fails with an 'The client '6df325020-fe22-4e39-bd69-10873965ac04' with object id '6df325020-fe22-4e39-bd69-10873965ac04' does not have authorization to perform action 'Microsoft.Compute/disks/write' over scope '/subscriptions/<subscriptionID>/resourceGroups/<resourceGroupName>/providers/Microsoft.Compute/disks/proxyVmDiskWin_<timestamp>' or the scope is invalid. If access was recently granted, please refresh your credentials.'

Causa

Esse erro ocorre quando você tenta especificar um grupo de recursos pré-existente e uma rede virtual para o serviço construtor de imagens da VM com uma imagem de origem do Windows.

Solução

Primeiro, você precisa atribuir a função Colaborador ao grupo de recursos para a entidade de serviço que corresponde ao aplicativo de primeira parte do Construtor de Imagens de VM. Use os seguintes comandos da CLI do Azure ou instruções do portal do Azure.

Primeiro, valide se a entidade de serviço está associada ao aplicativo de primeira parte do Construtor de Imagens de VM usando o seguinte comando da CLI do Azure:

az ad sp show --id {servicePrincipalName, or objectId}

Em seguida, para implementar essa solução usando a CLI do Azure, use o seguinte comando:

az role assignment create -g {ResourceGroupName} --assignee {AibrpSpOid} --role Contributor

Para implementar essa solução no portal, siga as instruções em Atribuir funções do Azure usando o portal do Azure:

Solucionar problemas de compilação

Para falhas na build da imagem, obtenha o erro de lastRunStatus e, em seguida, revise os detalhes no arquivo customization.log.

az image builder show --name $imageTemplateName  --resource-group $imageResourceGroup
Get-AzImageBuilderTemplate -ImageTemplateName  <imageTemplateName> -ResourceGroupName <imageTemplateResourceGroup> | Select-Object LastRunStatus, LastRunStatusMessage

Log de personalização

Acessar logs dinâmicos durante a build da imagem

Para monitorar efetivamente o andamento da build da imagem, você pode acessar os logs dinâmicos gerados pelo Construtor de Imagens de VM nas Instâncias de Contêiner do Azure. Esses logs fornecem insights em tempo real sobre o processo de build. Eles ajudam você a identificar problemas ou a confirmar se o build está em andamento conforme o esperado.

Para localizar e exibir os logs ao vivo:

  1. Inicie o processo de construção de imagem.

  2. Acesse o portal do Azure e selecione Grupos de Recursos. Filtre pela assinatura em que você iniciou a build da imagem.

  3. Encontre e selecione o grupo de recursos de preparo associado à build da imagem. Esse grupo de recursos contém os recursos de build para o serviço construtor de imagens da VM. Para obter mais informações sobre o grupo de recursos de preparo, consulte Properties: stagingResourceGroup.

  4. Nesse grupo de recursos, procure o recurso chamado vmimagebuilder-build-container-**********. Se não estiver visível, aguarde alguns minutos e atualize a página.

  5. No painel esquerdo, em Configurações, selecione Contêineres.

  6. Acesse a guia Logs para visualizar os logs ao vivo durante o processo de construção da imagem.

Se você não vir nenhum log, tente atualizar o contêiner após alguns minutos.

Baixar o log de personalização e/ou validação após a build da imagem

Após a conclusão da build da imagem, os logs de personalização e validação são armazenados em um contêiner na conta de armazenamento no grupo de recursos de preparo criado pelo serviço Construtor de Imagens de VM. Para obter mais informações sobre o grupo de recursos de preparo, consulte Properties: stagingResourceGroup.

Para localizar e baixar o arquivo customization.log ou validation.log:

  1. No portal do Azure, acesse a conta de armazenamento relevante filtrando as contas de armazenamento dentro do grupo de recursos de preparo criado pelo serviço Construtor de Imagens de VM.

  2. Na conta de armazenamento, vá para o Armazenamento de Dados.

  3. Selecione a opção Contêiner e escolha o packerlogs contêiner.

  4. Dentro do packerlogs contêiner, várias pastas serão exibidas se o build da imagem for executado várias vezes. Essas pastas são organizadas, da versão mais antiga até a mais recente. Selecione a pasta que corresponde ao build no qual você está interessado.

  5. Dentro da pasta selecionada, selecione o arquivo customization.log e/ou validation.log, e depois selecione Fazer download para baixar seu conteúdo.

Estágios do log de personalização

O log é detalhado. Ele aborda a build da imagem, incluindo quaisquer problemas com a distribuição da imagem, como a replicação da Galeria de Computação do Azure. Esses problemas são exibidos na mensagem de erro do status do modelo de imagem.

O arquivo customization.log inclui as seguintes fases:

  1. Implante a VM de construção e as dependências usando modelos do Azure Resource Manager no IT_ grupo de recursos de estágio. Esse estágio inclui várias POST solicitações para o provedor de recursos do VM Image Builder:

    Azure request method="POST" request="https://management.azure.com/subscriptions/<subID>/resourceGroups/IT_aibImageRG200_window2019VnetTemplate01_dec33089-1cc3-cccc-cccc-ccccccc/providers/Microsoft.Storage/storageAccounts
    ..
    PACKER OUT ==> azure-arm: Deploying deployment template ...
    ..
    
  2. Obtenha o status das implantações. Esta fase inclui o status da implantação de cada recurso:

    PACKER ERR 2020/04/30 23:28:50 packer: 2020/04/30 23:28:50 Azure request method="GET" request="https://management.azure.com/subscriptions/<subID>/resourcegroups/IT_aibImageRG200_window2019VnetTemplate01_dec33089-1cc3-4505-ae28-6661e43fac48/providers/Microsoft.Resources/deployments/pkrdp51lc0339jg/operationStatuses/08586133176207523519?[REDACTED]" body=""
    
  3. Conecte-se à VM de build.

    No Windows, o Construtor de Imagens de VM se conecta usando o WinRM:

    PACKER ERR 2020/04/30 23:30:50 packer: 2020/04/30 23:30:50 Waiting for WinRM, up to timeout: 10m0s
    ..
    PACKER OUT     azure-arm: WinRM connected.
    

    No Linux, o Construtor de Imagens de Máquinas Virtuais se conecta usando SSH:

    PACKER OUT ==> azure-arm: Waiting for SSH to become available...
    PACKER ERR 2019/12/10 17:20:51 packer: 2020/04/10 17:20:51 [INFO] Waiting for SSH, up to timeout: 20m0s
    PACKER OUT ==> azure-arm: Connected to SSH!
    
  4. Executar personalizações. Quando as personalizações são executadas, você pode identificá-las examinando o customization.log arquivo. Pesquise por (telemetry):

    (telemetry) Starting provisioner windows-update
    (telemetry) ending windows-update
    (telemetry) Starting provisioner powershell
    (telemetry) ending powershell
    (telemetry) Starting provisioner file
    (telemetry) ending file
    (telemetry) Starting provisioner windows-restart
    (telemetry) ending windows-restart
    
    (telemetry) Finalizing. - This means the build has finished
    
  5. Desprovisionar. O Construtor de Imagens de VM adiciona um personalizador oculto. Esta etapa é responsável por preparar a VM para desprovisionamento. No Windows, ele executa Sysprep (usando c:\DeprovisioningScript.ps1). No Linux, ele executa waagent-deprovision (usando /tmp/DeprovisioningScript.sh).

    Por exemplo:

    PACKER ERR 2020/03/04 23:05:04 [INFO] (telemetry) Starting provisioner powershell
    PACKER ERR 2020/03/04 23:05:04 packer: 2020/03/04 23:05:04 Found command: if( TEST-PATH c:\DeprovisioningScript.ps1 ){cat c:\DeprovisioningScript.ps1} else {echo "Deprovisioning script [c:\DeprovisioningScript.ps1] could not be found. Image build may fail or the VM created from the Image may not boot. Please make sure the deprovisioning script is not accidentally deleted by a Customizer in the Template."}
    
  6. Limpar. Após a conclusão do build, os recursos do Construtor de Imagens da VM são excluídos:

    PACKER ERR ==> azure-arm: Deleting individual resources ...
    ...
    PACKER ERR 2020/02/04 02:04:23 packer: 2020/02/04 02:04:23 Azure request method="DELETE" request="https://management.azure.com/subscriptions/<subId>/resourceGroups/IT_aibDevOpsImg_t_vvvvvvv_yyyyyy-de5f-4f7c-92f2-xxxxxxxx/providers/Microsoft.Network/networkInterfaces/pkrnijamvpo08eo?[REDACTED]" body=""
    ...
    PACKER ERR ==> azure-arm: The resource group was not created by Packer, not deleting ...
    

Solucionar problemas de script ou personalização embutida

As dicas a seguir podem ajudá-lo a solucionar problemas de script ou personalização embutida:

  • Teste o código antes de fornecê-lo ao Construtor de Imagens de VM.
  • Verifique se o Azure Policy e o Firewall do Azure permitem a conectividade com recursos remotos.
  • Enviar comentários de saída para o console usando Write-Host ou echo. Isso permite que você pesquise o customization.log arquivo.

Solucionar erros comuns de compilação

Falha na implantação do modelo devido a uma violação de política

Erro

{
  "statusCode": "BadRequest",
  "serviceRequestId": null,
  "statusMessage": "{\"error\":{\"code\":\"InvalidTemplateDeployment\",\"message\":\"The template deployment failed because of policy violation. Please see details for more information.\",\"details\":[{\"code\":\"RequestDisallowedByPolicy\",\"target\":\"<target_name>\",\"message\":\"Resource '<resource_name>' was disallowed by policy. Policy identifiers: '[{\\\"policyAssignment\\\":{\\\"name\\\":\\\"[Initiative] KeyVault (Microsoft.KeyVault)\\\",\\\"id\\\":\\\"/providers/Microsoft.Management/managementGroups/<managementGroup_name>/providers/Microsoft.Authorization/policyAssignments/Microsoft.KeyVault\\\"},\\\"policyDefinition\\\":{\\\"name\\\":\\\"Azure Key Vault should disable public network access\\\",\\\"id\\\":\\\"/providers/Microsoft.Management/managementGroups/<managementGroup_name>/providers/Microsoft.Authorization/policyDefinitions/KeyVault.disablePublicNetworkAccess_deny_deny\\\"},\\\"policySetDefinition\\\":{\\\"name\\\":\\\"[Initiative] KeyVault (Microsoft.KeyVault)\\\",\\\"id\\\":\\\"/providers/Microsoft.Management/managementGroups/<managementGroup_name>/providers/Microsoft.Authorization/policySetDefinitions/Microsoft.KeyVault\\\"}}]'.\",\"additionalInfo\":[{\"type\":\"PolicyViolation\"}]}]}}",
  "eventCategory": "Administrative",
  "entity": "/subscriptions/<subscription_ID>/<resourcegroups>/<resourcegroupname>/providers/Microsoft.Resources/deployments/<deployment_name>",
  "message": "Microsoft.Resources/deployments/validate/action",
  "hierarchy": "<subscription_ID>/<resourcegroupname>/<policy_name>/<managementGroup_name>/<deployment_ID>"
}

Causa

O erro de violação de política anterior é resultado do uso de um cofre de chaves do Azure com acesso público desabilitado. No momento, o Construtor de Imagens da VM não dá suporte a essa configuração.

Solução

Você deve criar o cofre de chaves com acesso público habilitado.

Falha no comando de build do Packer

Erro

  "provisioningState": "Succeeded",
  "lastRunStatus": {
   "startTime": "2020-04-30T23:24:06.756985789Z",
   "endTime": "2020-04-30T23:39:14.268729811Z",
   "runState": "Failed",
   "message": "Failed while waiting for packerizer: Microservice has failed: Failed while processing request: Error when executing packerizer: Packer build command has failed: exit status 1. During the image build, a failure has occurred, please review the build log to identify which build/customization step failed. For more troubleshooting steps go to https://aka.ms/azvmimagebuilderts. Image Build log location: https://xxxxxxxxxx.blob.core.windows.net/packerlogs/xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx/customization.log. OperationId: xxxxxx-5a8c-4379-xxxx-8d85493bc791. Use this operationId to search packer logs."

Causa

A falha de um comando de build do packer é uma falha de personalização.

Solução

Examine o log para localizar falhas nos personalizadores. Pesquise por (telemetry).

Por exemplo:

(telemetry) Starting provisioner windows-update
(telemetry) ending windows-update
(telemetry) Starting provisioner powershell
(telemetry) ending powershell
(telemetry) Starting provisioner file
(telemetry) ending file
(telemetry) Starting provisioner windows-restart
(telemetry) ending windows-restart

(telemetry) Finalizing. - This means the build has finished

A implantação falha devido ao tempo limite

Erro

Deployment failed. Correlation ID: xxxxx-xxxx-xxxx-xxxx-xxxxxxxxx. Failed in building/customizing image: Failed while waiting for packerizer: Timeout waiting for microservice to complete: 'context deadline exceeded'

Causa

A build excedeu o tempo limite. Esse erro aparece em lastRunStatus.

Solução

  1. Examine o arquivo customization.log. Identifique o último personalizador executado. Pesquise (telemetry), começando na parte inferior do registro.

  2. Verifique as personalizações do script. As personalizações podem não estar suprimindo a interação do usuário com comandos, como as opções quiet. Por exemplo, apt-get install -y faz com que a execução do script aguarde a interação do usuário.

  3. Se você estiver usando o File personalizador para baixar artefatos com mais de 20 MB, consulte a seção de soluções alternativas.

  4. Examine erros e dependências no script que podem fazer com que o script aguarde.

  5. Se você espera que as personalizações precisem de mais tempo, aumente o valor de buildTimeoutInMinutes. O padrão é de 4 horas.

  6. Se você tiver ações com uso intensivo de recursos, como baixar gigabytes de arquivos, considere o tamanho da VM de build subjacente.

    O serviço usa uma VM Standard_D1_v2. A VM tem uma vCPU e 3,5 GB de memória. Se você estiver baixando 50 GB, isso provavelmente esgotará os recursos da VM e causará falhas de comunicação entre o Construtor de Imagens de VM e a VM de build. Tente novamente o build com uma VM de memória maior definindo VM_size.

O tempo de download do arquivo é longo

Erro

[086cf9c4-0457-4e8f-bfd4-908cfe3fe43c] PACKER OUT
myBigFile.zip 826 B / 826000 B  1.00%
[086cf9c4-0457-4e8f-bfd4-908cfe3fe43c] PACKER OUT
myBigFile.zip 1652 B / 826000 B  2.00%
[086cf9c4-0457-4e8f-bfd4-908cfe3fe43c] PACKER OUT
..
hours later...
..
myBigFile.zip 826000 B / 826000 B  100.00%
[086cf9c4-0457-4e8f-bfd4-908cfe3fe43c] PACKER OUT

Causa

O File personalizador está baixando um arquivo grande.

Solução

O File personalizador é adequado apenas para downloads de arquivos pequenos (menos de 20 MB). Para downloads de arquivos maiores, use um script ou um comando embutido. Por exemplo, no Linux, você pode usar wget ou curl. No Windows, você pode usar o Invoke-WebRequest.

A reinicialização do Windows falha continuamente com o código de erro 1190

Erro

[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 [INFO] (telemetry) Starting provisioner windows-restart
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 packer-plugin-azure plugin: 2023/06/13 08:28:58 [INFO] starting remote command: shutdown /r /f /t 10
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 packer-plugin-azure plugin: 2023/06/13 08:28:58 [INFO] command 'shutdown /r /f /t 10' exited with code: 0
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER OUT ==> azure-arm: A system shutdown has already been scheduled.(1190)
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 packer-plugin-azure plugin: 2023/06/13 08:28:58 [INFO] RPC endpoint: Communicator ended with: 0
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 [INFO] 0 bytes written for 'stdout'
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 [INFO] 0 bytes written for 'stderr'
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 [INFO] RPC client: Communicator ended with: 0
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 [INFO] RPC endpoint: Communicator ended with: 0
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 packer-provisioner-windows-restart plugin: [INFO] 0 bytes written for 'stdout'
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 packer-provisioner-windows-restart plugin: [INFO] 0 bytes written for 'stderr'
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 packer-provisioner-windows-restart plugin: [INFO] RPC client: Communicator ended with: 0
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 packer-provisioner-windows-restart plugin: Check if machine is rebooting...
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 packer-plugin-azure plugin: 2023/06/13 08:28:58 [INFO] starting remote command: shutdown /r /f /t 60 /c "packer restart test"
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 packer-plugin-azure plugin: 2023/06/13 08:28:58 [INFO] command 'shutdown /r /f /t 60 /c "packer restart test"' exited with code: 1190
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 packer-plugin-azure plugin: 2023/06/13 08:28:58 [INFO] RPC endpoint: Communicator ended with: 1190
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 [INFO] 52 bytes written for 'stderr'
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 [INFO] 0 bytes written for 'stdout'
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 [INFO] RPC client: Communicator ended with: 1190
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 [INFO] RPC endpoint: Communicator ended with: 1190
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 packer-provisioner-windows-restart plugin: [INFO] 52 bytes written for 'stderr'
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 packer-provisioner-windows-restart plugin: [INFO] 0 bytes written for 'stdout'
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 packer-provisioner-windows-restart plugin: [INFO] RPC client: Communicator ended with: 1190
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 packer-provisioner-windows-restart plugin: Reboot already in progress, waiting...
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:29:08 packer-provisioner-windows-restart plugin: Check if machine is rebooting...
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:29:09 [INFO] 0 bytes written for 'stderr'
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:29:09 packer-provisioner-windows-restart plugin: [INFO] 0 bytes written for 'stderr'
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:29:09 packer-provisioner-windows-restart plugin: Waiting for machine to reboot with timeout: 15m0s
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:29:09 packer-provisioner-windows-restart plugin: Waiting for machine to become available...
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER OUT ==> Some builds didn't complete successfully and had errors:
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:46:26 machine readable: azure-arm,error []string{"Timeout waiting for machine to restart."}
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER OUT --> azure-arm: Timeout waiting for machine to restart.
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR ==> Builds finished but no artifacts were created.
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER OUT
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:46:26 [INFO] (telemetry) Finalizing.
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER OUT ==> Builds finished but no artifacts were created.

Causa

A etapa do Windows Update é declarada prematuramente em imagens baseadas no Windows Server 2016.

Solução

Aumente restartTimeout de 15 minutos para 30 minutos.

Erro

Deployment failed. Correlation ID: XXXXXX-XXXX-XXXXXX-XXXX-XXXXXX. Failed in distributing 1 images out of total 1: {[Error 0] [Distribute 0] Error publishing MDI to Azure Compute Gallery:/subscriptions/<subId>/resourceGroups/xxxxxx/providers/Microsoft.Compute/galleries/xxxxx/images/xxxxxx, Location:eastus. Error: Error returned from SIG client while publishing MDI to Azure Compute Gallery for dstImageLocation: eastus, dstSubscription: <subId>, dstResourceGroupName: XXXXXX, dstGalleryName: XXXXXX, dstGalleryImageName: XXXXXX. Error: Error waiting on Azure Compute Gallery future for resource group: XXXXXX, gallery name: XXXXXX, gallery image name: XXXXXX.Error: Future#WaitForCompletion: context has been cancelled: StatusCode=200 -- Original Error: context deadline exceeded}

Causa

O Construtor de Imagens de VM excedeu o tempo limite enquanto aguardava a adição e replicação da imagem na Galeria de Computação do Azure.

Se a imagem está sendo injetada na galeria, você pode presumir que a construção da imagem foi bem-sucedida. No entanto, o processo geral falhou porque o Construtor de Imagens da VM estava aguardando a Galeria de Computação do Azure concluir a replicação.

Mesmo que o build tenha falhado, a replicação continua. Você pode obter as propriedades da versão da imagem verificando a distribuição runOutput:

$runOutputName=<distributionRunOutput>
az resource show \
    --ids "/subscriptions/$subscriptionID/resourcegroups/$imageResourceGroup/providers/Microsoft.VirtualMachineImages/imageTemplates/$imageTemplateName/runOutputs/$runOutputName"  \
    --api-version=2020-02-14

Solução

Aumente o valor de buildTimeoutInMinutes.

Eventos de informações mostram poucos recursos do Windows

Erro

[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT     azure-arm: Waiting for operation to complete (system performance: 1% cpu; 37% memory)...
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT     azure-arm: Waiting for operation to complete (system performance: 51% cpu; 35% memory)...
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT     azure-arm: Waiting for operation to complete (system performance: 21% cpu; 37% memory)...
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT     azure-arm: Waiting for operation to complete (system performance: 21% cpu; 36% memory)...
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT     azure-arm: Waiting for operation to complete (system performance: 90% cpu; 32% memory)...
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT     azure-arm: Waiting for the Windows Modules Installer to exit...
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer: 2020/04/30 23:38:58 [INFO] command 'PowerShell -ExecutionPolicy Bypass -OutputFormat Text -File C:/Windows/Temp/packer-windows-update-elevated.ps1' exited with code: 101
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT ==> azure-arm: Restarting the machine...
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer: 2020/04/30 23:38:58 [INFO] RPC endpoint: Communicator ended with: 101
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 [INFO] 1672 bytes written for 'stdout'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 [INFO] 0 bytes written for 'stderr'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 [INFO] RPC client: Communicator ended with: 101
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 [INFO] RPC endpoint: Communicator ended with: 101
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT ==> azure-arm: Waiting for machine to become available...
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer-provisioner-windows-update: 2020/04/30 23:38:58 [INFO] 1672 bytes written for 'stdout'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer-provisioner-windows-update: 2020/04/30 23:38:58 [INFO] 0 bytes written for 'stderr'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer-provisioner-windows-update: 2020/04/30 23:38:58 [INFO] RPC client: Communicator ended with: 101
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer: 2020/04/30 23:38:58 [INFO] starting remote command: shutdown.exe -f -r -t 0 -c "packer restart"
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer: 2020/04/30 23:38:58 [INFO] command 'shutdown.exe -f -r -t 0 -c "packer restart"' exited with code: 0
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer: 2020/04/30 23:38:58 [INFO] RPC endpoint: Communicator ended with: 0
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 [INFO] 0 bytes written for 'stderr'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 [INFO] 0 bytes written for 'stdout'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT ==> azure-arm: A system shutdown is in progress.(1115)
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 [INFO] RPC client: Communicator ended with: 0
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 [INFO] RPC endpoint: Communicator ended with: 0
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer-provisioner-windows-update: 2020/04/30 23:38:58 [INFO] 0 bytes written for 'stdout'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer-provisioner-windows-update: 2020/04/30 23:38:58 [INFO] 0 bytes written for 'stderr'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer-provisioner-windows-update: 2020/04/30 23:38:58 [INFO] RPC client: Communicator ended with: 0
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 packer: 2020/04/30 23:38:59 [INFO] starting remote command: shutdown.exe -f -r -t 60 -c "packer restart test"
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 packer: 2020/04/30 23:38:59 [INFO] command 'shutdown.exe -f -r -t 60 -c "packer restart test"' exited with code: 1115
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 packer: 2020/04/30 23:38:59 [INFO] RPC endpoint: Communicator ended with: 1115
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 [INFO] 0 bytes written for 'stdout'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 [INFO] 40 bytes written for 'stderr'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 [INFO] RPC client: Communicator ended with: 1115
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 [INFO] RPC endpoint: Communicator ended with: 1115
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 packer-provisioner-windows-update: 2020/04/30 23:38:59 [INFO] 40 bytes written for 'stderr'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 packer-provisioner-windows-update: 2020/04/30 23:38:59 [INFO] 0 bytes written for 'stdout'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 packer-provisioner-windows-update: 2020/04/30 23:38:59 [INFO] RPC client: Communicator ended with: 1115
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 packer-provisioner-windows-update: 2020/04/30 23:38:59 Retryable error: Machine not yet available (exit status 1115)
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT Build 'azure-arm' errored: unexpected EOF
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT

Causa

A causa é o esgotamento de recursos. Esse problema geralmente ocorre quando o Windows Update é executado com o tamanho da VM de build padrão, D1_V2.

Solução

Aumente o tamanho da VM de build.

Construção concluída, mas nenhum artefato foi criado

Aviso

[<log_id>] PACKER 2023/09/14 19:01:18 ui: Build 'azure-arm' finished after 3 minutes 13 seconds.
[<log_id>] PACKER 2023/09/14 19:01:18 ui:
[<log_id>] PACKER ==> Wait completed after 3 minutes 13 seconds
[<log_id>] PACKER 2023/09/14 19:01:18 ui:
[<log_id>] PACKER ==> Builds finished but no artifacts were created.
[<log_id>] PACKER 2023/09/14 19:01:18 [INFO] (telemetry) Finalizing.
[<log_id>] PACKER 2023/09/14 19:01:19 waiting for all plugin processes to complete...
[<log_id>] PACKER 2023/09/14 19:01:19 /aib/packerInput/packer-plugin-azure: plugin process exited
[<log_id>] PACKER 2023/09/14 19:01:19 /aib/packerInput/packer: plugin process exited
[<log_id>] PACKER 2023/09/14 19:01:19 /aib/packerInput/packer: plugin process exited
[<log_id>] PACKER 2023/09/14 19:01:19 /aib/packerInput/packer: plugin process exited
[<log_id>] PACKER Done exporting Packer logs to Azure Storage.

Solução

Você pode ignorar com segurança o aviso anterior.

A criação da imagem foi ignorada

Aviso

[<log_id>] PACKER 2023/09/14 19:00:18 ui: ==> azure-arm:  -> Snapshot ID : '/subscriptions/<subscription_id>/resourceGroups/<resourcegroup_name>/providers/Microsoft.Compute/snapshots/<snapshot_name>'
[<log_id>] PACKER 2023/09/14 19:00:18 ui: ==> azure-arm: Skipping image creation...
[<log_id>] PACKER 2023/09/14 19:00:18 ui: ==> azure-arm:
[<log_id>] PACKER ==> azure-arm: Deleting individual resources ...
[<log_id>] PACKER 2023/09/14 19:00:18 packer-plugin-azure plugin: 202

Solução

Você pode ignorar com segurança o aviso anterior.

O recurso não foi encontrado

Erro

  "provisioningState": "Succeeded",
  "lastRunStatus": {
   "startTime": "2020-05-01T00:13:52.599326198Z",
   "endTime": "2020-05-01T00:15:13.62366898Z",
   "runState": "Failed",
   "message": "network.InterfacesClient#UpdateTags: Failure responding to request: StatusCode=404 -- Original Error: autorest/azure: Service returned an error. Status=404 Code=\"ResourceNotFound\" Message=\"The Resource 'Microsoft.Network/networkInterfaces/aibpls7lz2e.nic.4609d697-be0a-4cb0-86af-49b6fe877fe1' under resource group 'IT_aibImageRG200_window2019VnetTemplate01_9988723b-af56-413a-9006-84130af0e9df' was not found.\""
  },

Causa

Faltam permissões.

Solução

Verifique novamente se o Construtor de Imagens da VM tem todas as permissões necessárias.

Para obter mais informações sobre como configurar permissões, veja Configurar permissões do Construtor de Imagens de VM usando a CLI do Azure ou Configurar permissões do Construtor de Imagens de VM usando o PowerShell.

Há um problema de sincronização do Sysprep

Erro

[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: Write-Output '>>> Waiting for GA Service (RdAgent) to start ...'
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: while ((Get-Service RdAgent) -and ((Get-Service RdAgent).Status -ne 'Running')) { Start-Sleep -s 5 }
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: Write-Output '>>> Waiting for GA Service (WindowsAzureTelemetryService) to start ...'
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: while ((Get-Service WindowsAzureTelemetryService) -and ((Get-Service WindowsAzureTelemetryService).Status -ne 'Running')) { Start-Sleep -s 5 }
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: Write-Output '>>> Waiting for GA Service (WindowsAzureGuestAgent) to start ...'
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: while ((Get-Service WindowsAzureGuestAgent) -and ((Get-Service WindowsAzureGuestAgent).Status -ne 'Running')) { Start-Sleep -s 5 }
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: Write-Output '>>> Sysprepping VM ...'
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: if( Test-Path $Env:SystemRoot\system32\Sysprep\unattend.xml ) {
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm:   Remove-Item $Env:SystemRoot\system32\Sysprep\unattend.xml -Force
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: }
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: & $Env:SystemRoot\System32\Sysprep\Sysprep.exe /oobe /generalize /quiet /quit
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: while($true) {
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm:   $imageState = (Get-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\State).ImageState
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm:   Write-Output $imageState
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm:   if ($imageState -eq 'IMAGE_STATE_GENERALIZE_RESEAL_TO_OOBE') { break }
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm:   Start-Sleep -s 5
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: }
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: Write-Output '>>> Sysprep complete ...'
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: >>> Waiting for GA Service (RdAgent) to start ...
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: >>> Waiting for GA Service (WindowsAzureTelemetryService) to start ...
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: >>> Waiting for GA Service (WindowsAzureGuestAgent) to start ...
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: >>> Sysprepping VM ...
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: IMAGE_STATE_COMPLETE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT ==> azure-arm: Get-Service : Cannot find any service with service name 'WindowsAzureGuestAgent'.
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT ==> azure-arm: At C:\DeprovisioningScript.ps1:6 char:9
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT ==> azure-arm: + while ((Get-Service WindowsAzureGuestAgent) -and ((Get-Service Window ...
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT ==> azure-arm: +         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT ==> azure-arm:     + CategoryInfo          : ObjectNotFound: (WindowsAzureGuestAgent:String) [Get-Service], ServiceCommandException
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT ==> azure-arm:     + FullyQualifiedErrorId : NoServiceFoundForGivenName,Microsoft.PowerShell.Commands.GetServiceCommand
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT ==> azure-arm:
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: IMAGE_STATE_UNDEPLOYABLE
...
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER ERR 2020/05/05 22:26:17 Cancelling builder after context cancellation context canceled
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT Cancelling build after receiving terminated
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER ERR 2020/05/05 22:26:17 packer: 2020/05/05 22:26:17 Cancelling provisioning due to context cancellation: context canceled
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT ==> azure-arm:
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER ERR 2020/05/05 22:26:17 packer: 2020/05/05 22:26:17 Cancelling hook after context cancellation context canceled
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT ==> azure-arm: The resource group was not created by Packer, deleting individual resources ...
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER ERR ==> azure-arm: The resource group was not created by Packer, deleting individual resources ...

Causa

O tamanho da VM D1_V2 pode ser o motivo do problema de tempo. Se as personalizações forem limitadas e forem executadas em menos de três segundos, o Construtor de Imagens da VM executará Sysprep comandos para desprovisionar. Quando o Construtor de Imagens de VM é desprovisionado, o comando Sysprep verifica WindowsAzureGuestAgent, que pode não estar totalmente instalado e pode causar o problema de tempo.

Solução

Para evitar o problema de tempo, você pode aumentar o tamanho da VM ou adicionar uma personalização de suspensão do PowerShell de 60 segundos.

O provedor de Instâncias de Contêiner do Azure não foi registrado

Erro

Azure Container Instances provider not registered for your subscription.

Causa

Sua assinatura de modelo não tem o provedor de Instâncias de Contêiner do Azure registrado.

Solução

Registre o provedor de Instâncias de Contêiner do Azure para sua assinatura de template e adicione um dos comandos a seguir:

  • CLI do Azure: az provider register -n Microsoft.ContainerInstance
  • Azure PowerShell: Register-AzResourceProvider -ProviderNamespace Microsoft.ContainerInstance

Assinatura excedeu a cota de Instâncias de Contêiner do Azure

Erro

Azure Container Instances quota exceeded

Causa

Sua assinatura não tem cota suficiente de Instâncias de Contêiner do Azure para que o Construtor de Imagens de VM crie uma imagem com êxito.

Solução

Você pode executar as seguintes ações para disponibilizar a cota de Instâncias de Contêiner do Azure para o Construtor de Imagens de VM:

  • Verifique outros usos de Instâncias de Contêiner do Azure em sua assinatura. Remova todas as instâncias desnecessárias para disponibilizar a cota para o Construtor de Imagens de VM.

  • O Construtor de Imagens de VM implanta as Instâncias de Contêiner do Azure apenas temporariamente durante um build. Essas instâncias são excluídas após a conclusão do build.

    Se muitas compilações de imagem simultâneas estiverem em execução em sua assinatura, considere adiar algumas delas. Esse atraso reduz o uso simultâneo das Instâncias de Contêiner do Azure em sua assinatura.

    Se os modelos de imagem estiverem configurados para builds de imagem automáticas por meio de gatilhos, o Construtor de Imagens de VM repetirá automaticamente essas builds com falha.

  • Se os limites atuais das Instâncias de Contêiner do Azure para sua assinatura forem muito baixos para dar suporte aos cenários de criação de imagens, você poderá solicitar um aumento na cota de Instâncias de Contêiner do Azure.

Observação

Recursos de Instâncias de Contêiner do Azure são necessários para Builds de Imagens Isoladas.

Muitos recursos de Instâncias de Contêiner do Azure são implantados em um curto período de tempo

Erro

"Muitas Instâncias de Contêiner do Azure implantadas em um período."

Causa

Sua assinatura não tem cota suficiente de Instâncias de Contêiner do Azure para que o Construtor de Imagens de VM crie imagens simultaneamente com êxito.

Solução

Você pode experimentar estas soluções:

  • Tente novamente as compilações com falha de maneira menos simultânea.
  • Se os limites atuais das Instâncias de Contêiner do Azure para sua assinatura forem muito baixos para dar suporte aos cenários de criação de imagens, você poderá solicitar um aumento na cota de Instâncias de Contêiner do Azure.

O recurso Builds de Imagens Isoladas causa uma falha

Erro

As Builds do Construtor de Imagens de VM estão falhando devido às Builds de Imagens Isoladas.

Causa

Os builds do Construtor de Imagens da VM podem falhar por motivos listados em outros lugares neste artigo. No entanto, há uma pequena chance de que uma build falhe devido às Builds de Imagens Isoladas, dependendo do cenário, das cotas de assinatura ou de algum erro de serviço imprevisto. Para obter mais informações, consulte Compilações de imagem isoladas.

Solução

Se você determinar que uma build está falhando devido às Builds de Imagens Isoladas, verifique se:

O Construtor de Imagens de VM está atualmente no processo de implantação de Builds de Imagens Isoladas. Modelos de imagem específicos não estão vinculados a Builds de Imagens Isoladas, e o mesmo modelo de imagem pode ou não usar Builds de Imagens Isoladas durante diferentes builds.

Para executar temporariamente sua build sem Builds de Imagens Isoladas, repita a build. Como os modelos de imagem não estão vinculados ao recurso de Builds de Imagem Isolada, quando você tenta executar novamente um build, há uma alta probabilidade de que ele seja reexecutado sem os Builds de Imagem Isolada.

Se nenhuma dessas soluções mitigar as falhas de build de imagem, você poderá entrar em contato com o suporte do Azure para excluir temporariamente sua assinatura das Builds de Imagens Isoladas. Para obter mais informações, confira Criar uma solicitação de Suporte do Azure.

Observação

Se o recurso Builds de Imagem Isolada estiver eventualmente habilitado em todas as regiões e modelos, as mitigações anteriores serão apenas temporárias. É melhor resolver a causa subjacente das falhas de build.

A build é cancelada após o cancelamento do contexto

Erro

PACKER ERR 2020/03/26 22:11:23 Cancelling builder after context cancellation context canceled
PACKER OUT Cancelling build after receiving terminated
PACKER ERR 2020/03/26 22:11:23 packer-builder-azure-arm plugin: Cancelling hook after context cancellation context canceled
..
PACKER ERR 2020/03/26 22:11:23 packer-builder-azure-arm plugin: Cancelling provisioning due to context cancellation: context canceled
PACKER ERR 2020/03/26 22:11:25 packer-builder-azure-arm plugin: [ERROR] Remote command exited without exit status or exit signal.
PACKER ERR 2020/03/26 22:11:25 packer-builder-azure-arm plugin: [INFO] RPC endpoint: Communicator ended with: 2300218
PACKER ERR 2020/03/26 22:11:25 [INFO] 148974 bytes written for 'stdout'
PACKER ERR 2020/03/26 22:11:25 [INFO] 0 bytes written for 'stderr'
PACKER ERR 2020/03/26 22:11:25 [INFO] RPC client: Communicator ended with: 2300218
PACKER ERR 2020/03/26 22:11:25 [INFO] RPC endpoint: Communicator ended with: 2300218

Causa

O Construtor de Imagens de VM usa a porta 22 (Linux) ou 5986 (Windows) para se conectar à VM de build. Esse problema ocorre quando o serviço é desconectado da VM de build durante um build de imagem. Os motivos para a desconexão podem variar, mas habilitar ou configurar um firewall no script pode bloquear as portas mencionadas anteriormente.

Solução

Examine seus scripts quanto a alterações de firewall ou habilitação ou alterações no SSH ou no WinRM. Verifique se todas as alterações permitem conectividade constante entre o serviço e a VM de build nas portas mencionadas anteriormente. Para obter mais informações, veja Opções de rede do Construtor de Imagens de VM.

Erros de JWT aparecem no log no início do build

Erro

No início do processo de build, ocorre uma falha e o log indica um erro de JWT (JSON Web Token):

PACKER OUT Error: Failed to prepare build: "azure-arm"
PACKER ERR
PACKER OUT
PACKER ERR * client_jwt will expire within 5 minutes, please use a JWT that is valid for at least 5 minutes
PACKER OUT 1 error(s) occurred:

Causa

O valor de buildTimeoutInMinutes no modelo é definido como de um a cinco minutos.

Solução

Conforme descrito em Criar um modelo do Construtor de Imagens de VM, o tempo limite deve ser definido como 0 minutos para usar o padrão ou definido como mais de 5 minutos para substituir o padrão. Altere o tempo limite em seu modelo para 0 minutos para usar o padrão ou altere-o para um mínimo de 6 minutos.

Erros de exclusão de recursos são exibidos

Erro

Os recursos intermediários são limpos no final do build e o log de personalização poderá mostrar vários erros de exclusão de recursos:

PACKER OUT ==> azure-arm: Error deleting resource. Will retry.
...
PACKER OUT ==> azure-arm: Error: network.PublicIPAddressesClient#Delete: Failure sending request: StatusCode=0 -- Original Error: Code="PublicIPAddressCannotBeDeleted" Message=...
...
PACKER ERR 2022/03/07 18:43:06 packer-plugin-azure plugin: 2022/03/07 18:43:06 Retryable error: network.SecurityGroupsClient#Delete: Failure sending request: StatusCode=0 -- Original Error: Code="InUseNetworkSecurityGroupCannotBeDeleted"...

Causa

Essas mensagens de log de erros são inofensivas, pois as exclusões de recursos são repetidas várias vezes. Normalmente, eles eventualmente têm sucesso. Você pode verificar esse comportamento continuando a seguir os logs de exclusão até observar uma mensagem de êxito. Como alternativa, você pode inspecionar o grupo de recursos de preparação para confirmar se o recurso foi excluído.

Fazer essas observações é especialmente importante em falhas de build. Essas mensagens de erro podem levar você a concluir que elas são o motivo das falhas, mesmo quando os erros reais podem estar em outro lugar.

Erro

Quando as imagens ficam presas na exclusão de modelo, o log de personalização pode mostrar o seguinte erro:

error deleting resource id /subscriptions/<subscriptionID>/resourceGroups/<rgName>/providers/Microsoft.Network/networkInterfaces/<networkInterfacName>: resources.Client#DeleteByID: Failure sending request: StatusCode=400 --
Original Error: Code="NicInUseWithPrivateEndpoint"
Message="Network interface /subscriptions/<subscriptionID>/resourceGroups/<rgName>/providers/Microsoft.Network/networkInterfaces/<networkInterfacName> cannot be deleted because it is currently in use with an private endpoint (/subscriptions/<subscriptionID>/resourceGroups/<rgName>/providers/Microsoft.Network/privateEndpoints/<pIname>)." Details=[]

Causa

O erro ocorre porque o adaptador de rede está atualmente em uso com um ponto de extremidade privado.

Solução

Para resolver o problema, exclua os seguintes recursos um a um nesta ordem específica:

  1. Conexão de ponto de extremidade privado. Você pode encontrar essa conexão no recurso de serviço de Link Privado do Azure acessando a guia Conexões de ponto de extremidade privado na página do recurso de serviço de Link Privado.
  2. Serviço de Link Privado.
  3. Adaptador de rede e balanceador de carga.
  4. Grupo de recursos.
  5. Modelo de imagem.

Para obter mais assistência, você pode entrar em contato com o suporte do Azure para resolver o erro de exclusão travada.

O destino de distribuição não foi encontrado na solicitação de atualização

Erro

Validation failed: Distribute target with Runoutput name <runoutputname> not found in the update request. Deleting a distribution target is not allowed.

Causa

Esse erro ocorre quando um destino de distribuição existente não é encontrado no corpo da solicitação de patch.

Solução

A matriz de distribuição deve conter todos os destinos de distribuição: novos destinos (se houver), destinos existentes sem alteração e destinos atualizados. Se você quiser remover um destino de distribuição existente, exclua e crie novamente o modelo de imagem. Atualmente, não há suporte para a exclusão de um destino de distribuição por meio da API de Patch.

Os campos necessários estão ausentes

Erro

Validation failed: 'ImageTemplate.properties.distribute[<index>]': Missing field <fieldname>. Please review http://aka.ms/azvmimagebuildertmplref for details on fields required in the Image Builder Template.

Causa

Esse erro ocorre quando um campo necessário está ausente de um destino de distribuição.

Solução

Ao criar uma solicitação, certifique-se de fornecer todos os campos necessários em um destino de distribuição, mesmo que não haja nenhuma alteração.

Solucionar problemas do Azure DevOps

Uma tarefa do Azure DevOps só falhará se ocorrer um erro durante a personalização. Quando esse erro ocorre, a tarefa relata a falha e deixa o grupo de recursos de preparo, com os logs, para que você possa identificar o problema.

Para localizar o log:

  1. Encontre o nome do modelo. Vá para acompilação com falha do Pipeline> e, em seguida, faça uma busca detalhada na tarefa do Azure DevOps no Construtor de Imagens da VM. Anote o valor template name.

    start reading task parameters...
    found build at:  /home/vsts/work/r1/a/_ImageBuilding/webapp
    end reading parameters
    getting storage account details for aibstordot1556933914
    created archive /home/vsts/work/_temp/temp_web_package_21475337782320203.zip
    Source for image:  { type: 'SharedImageVersion',
      imageVersionId: '/subscriptions/<subscriptionID>/resourceGroups/<rgName>/providers/Microsoft.Compute/galleries/<galleryName>/images/<imageDefName>/versions/<imgVersionNumber>' }
    template name:  t_1556938436xxx
    
  2. Vá para o portal do Azure, pesquise o nome do modelo no grupo de recursos e pesquise o grupo de recursos inserindo IT_.

  3. Selecione o nome da conta de armazenamento e, em seguida, selecione blobs>contêineres>logs.

Ocasionalmente, talvez seja necessário investigar builds bem-sucedidos e examinar os logs deles. Conforme mencionado anteriormente, se a build da imagem for bem-sucedida, o grupo de recursos de preparo que contém os logs será excluído como parte da limpeza. Para evitar uma limpeza automática, você pode introduzir sleep após o comando em linha e, em seguida, exibir os logs enquanto a compilação é pausada.

  1. Atualize o comando inline adicionando Write-Host / Echo "Sleep". Essa adição dá tempo para pesquisar no log.
  2. Adicione um valor sleep de pelo menos 10 minutos usando um comando Linux Start-Sleep ou Sleep.
  3. Use esse método para identificar a localização do log e continue baixando ou verificando o log até que ele chegue ao sleep.

A operação foi cancelada

Erro

2020-05-05T18:28:24.9280196Z ##[section]Starting: Azure VM Image Builder Task
2020-05-05T18:28:24.9609966Z ==============================================================================
2020-05-05T18:28:24.9610739Z Task         : Azure VM Image Builder Test
2020-05-05T18:28:24.9611277Z Description  : Build images using Azure Image Builder resource provider.
2020-05-05T18:28:24.9611608Z Version      : 1.0.18
2020-05-05T18:28:24.9612003Z Author       : Microsoft Corporation
2020-05-05T18:28:24.9612718Z Help         : For documentation, and end to end example, please visit: http://aka.ms/azvmimagebuilderdevops
2020-05-05T18:28:24.9613390Z ==============================================================================
2020-05-05T18:28:26.0651512Z start reading task parameters...
2020-05-05T18:28:26.0673377Z found build at:  d:\a\r1\a\_AppsAndImageBuilder\webApp
2020-05-05T18:28:26.0708785Z end reading parameters
2020-05-05T18:28:26.0745447Z getting storage account details for aibstagstor1565047758
2020-05-05T18:28:29.8812270Z created archive d:\a\_temp\temp_web_package_09737279437949953.zip
2020-05-05T18:28:33.1568013Z Source for image:  { type: 'PlatformImage',
2020-05-05T18:28:33.1584131Z   publisher: 'MicrosoftWindowsServer',
2020-05-05T18:28:33.1585965Z   offer: 'WindowsServer',
2020-05-05T18:28:33.1592768Z   sku: '2016-Datacenter',
2020-05-05T18:28:33.1594191Z   version: '14393.3630.2004101604' }
2020-05-05T18:28:33.1595387Z template name:  t_1588703313152
2020-05-05T18:28:33.1597453Z starting put template...
2020-05-05T18:28:52.9278603Z put template:  Succeeded
2020-05-05T18:28:52.9281282Z starting run template...
2020-05-05T19:33:14.3923479Z ##[error]The operation was canceled.
2020-05-05T19:33:14.3939721Z ##[section]Finishing: Azure VM Image Builder Task

Causa

Se um usuário não cancelou o build, o agente de usuário do Azure DevOps o cancelou. Provavelmente, o tempo limite de uma hora ocorreu devido às funcionalidades do Azure DevOps. Se estiver usando um projeto e um agente privados, você terá 60 minutos de tempo de build. Se o build exceder o tempo limite, o Azure DevOps cancelará a tarefa em execução.

Para obter mais informações sobre as limitações e os recursos do Azure DevOps, veja agentes hospedados pela Microsoft.

Solução

Você pode hospedar seus próprios agentes do Azure DevOps ou tentar reduzir o tempo do build. Por exemplo, se você estiver distribuindo para a Galeria de Computação do Azure, poderá replicá-las para uma região ou replicá-las de forma assíncrona.

O logon do Windows está lento

Erro

Esse erro pode ocorrer quando você cria uma imagem do Windows 10 usando o Construtor de Imagens de VM, cria uma VM com base na imagem e usa o Protocolo RDP (Remote Desktop Protocol). Você aguarda vários minutos na primeira tela de logon e, em seguida, uma tela azul exibe a seguinte mensagem:

Please wait for the Windows Modules Installer

Solução

  1. Durante a construção da imagem, assegure-se de que:

    • Não há reinicializações pendentes necessárias ao adicionar um personalizador de reinicialização do Windows como a última personalização.
    • Toda a instalação do software está concluída.
  2. Adicione a opção /mode:vm ao comando padrão Sysprep usado pelo Construtor de Imagens da VM. Para obter mais informações, consulte Substituir os comandos mais adiante neste artigo.

Solucionar problemas de VMs criadas sem sucesso pelo Image Builder de VM

Por padrão, o Construtor de Imagens de VM executa o código de desprovisionamento no final de cada fase de personalização de imagem para generalizar a imagem. A generalização de uma imagem configura-a para reutilização na criação de várias VMs. Como parte do processo, você pode passar as configurações de VM, como nome de host e nome de usuário.

No Windows, o Construtor de Imagens de VM executa um comando genérico Sysprep . No entanto, esse comando pode não ser adequado para todas as generalizações bem-sucedidas do Windows. Com o Construtor de Imagens de VM, você pode personalizar o comando Sysprep. A Construtora de Imagens de VM é uma ferramenta de automação de imagens responsável por executar comandos Sysprep com êxito. No entanto, você pode precisar de comandos Sysprep diferentes para tornar sua imagem reutilizável.

No Linux, o Construtor de Imagens da VM executa um comando genérico waagent -deprovision+user . Para obter mais informações, consulte a documentação do Agente Linux do Microsoft Azure.

Se você estiver migrando uma personalização existente e estiver usando vários comandos Sysprep ou waagent, poderá experimentar os comandos genéricos do Construtor de Imagens de VM. Se a criação da VM falhar, use os comandos Sysprep ou waagent anteriores.

Vamos supor que você usou o Construtor de Imagens de VM com êxito para criar uma imagem personalizada do Windows, mas não conseguiu criar uma VM com êxito com base na imagem. Por exemplo, a criação da VM não é concluída ou ocorre um timeout. Nesse caso, execute uma das seguintes tarefas:

  • Examine a documentação do Windows Server Sysprep .
  • Crie uma solicitação de suporte com a equipe de suporte ao cliente do Windows Server Sysprep . Essa equipe pode ajudar a solucionar o problema e aconselhá-lo sobre o comando correto Sysprep .

Locais do comando e nomes de arquivo

No Windows:

c:\DeprovisioningScript.ps1

No Linux:

/tmp/DeprovisioningScript.sh

Comando Sysprep para Windows

Write-Output '>>> Waiting for GA Service (RdAgent) to start ...'
while ((Get-Service RdAgent).Status -ne 'Running') { Start-Sleep -s 5 }
Write-Output '>>> Waiting for GA Service (WindowsAzureTelemetryService) to start ...'
while ((Get-Service WindowsAzureTelemetryService) -and ((Get-Service WindowsAzureTelemetryService).Status -ne 'Running')) { Start-Sleep -s 5 }
Write-Output '>>> Waiting for GA Service (WindowsAzureGuestAgent) to start ...'
while ((Get-Service WindowsAzureGuestAgent).Status -ne 'Running') { Start-Sleep -s 5 }
Write-Output '>>> Sysprepping VM ...'
if( Test-Path $Env:SystemRoot\system32\Sysprep\unattend.xml ) {
  Remove-Item $Env:SystemRoot\system32\Sysprep\unattend.xml -Force
}
& $Env:SystemRoot\System32\Sysprep\Sysprep.exe /oobe /generalize /quiet /quit
while($true) {
  $imageState = (Get-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\State).ImageState
  Write-Output $imageState
  if ($imageState -eq 'IMAGE_STATE_GENERALIZE_RESEAL_TO_OOBE') { break }
  Start-Sleep -s 5
}
Write-Output '>>> Sysprep complete ...'

Comando de Desprovisionamento para Linux

sudo /usr/sbin/waagent -force -deprovision+user && export HISTSIZE=0 && sync

Substituindo os comandos

Para substituir os comandos, use os provisionadores de script PowerShell ou shell para criar os arquivos de comando com o nome de arquivo exato. Coloque-os nos diretórios listados anteriormente. O Construtor de Imagens da VM lê esses comandos e grava a saída no customization.log arquivo.

Obter suporte

Se você usou as diretrizes neste artigo e ainda está tendo problemas, pode abrir um caso de suporte.

Use o código a seguir para selecionar o produto correto e o tópico de suporte. Isso garante que você esteja conectado à equipe de suporte do Construtor de Imagens da VM do Azure.

Product Family: Azure
Product: Virtual Machine Running (Window\Linux)
Support Topic: Azure Features
Support Subtopic: Azure Image Builder