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.
Pré-requisitos
Quando estiver criando um build, faça o seguinte:
- O serviço do Construtor de Imagens de VM se comunica com a VM de build usando WinRM ou SSH (Secure Shell). Não* desabilite essas configurações como parte do build.
- O Construtor de Imagens de VM cria recursos no grupo de recursos de preparo como parte dos builds. A lista exata de recursos depende da configuração de rede especificada no 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.
- Criar um grupo de recursos IT_.
- Criar uma conta de armazenamento sem um firewall.
- Implantar nas Instâncias de Contêiner do Azure.
- Implantar recursos da Rede Virtual do Azure (e sub-redes).
- Implantar recursos do Ponto de Extremidade Privado do Azure.
- Implantar os Arquivos do Azure.
- Verifique se o Azure Policy não instala recursos indesejados na VM de build, como Extensões do Azure.
- 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 se eles são executados sem erro (código de saída zero) ou exigem a 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 sua assinatura tem cota suficiente de Instâncias de Contêiner do Azure.
- Cada build de imagem pode implantar até um recurso temporário da Instância de Contêiner do Azure (de quatro núcleos padrão) no grupo de recursos de preparo. Esses recursos são necessários para builds de imagem isolada.
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
Observação
As imagens protegidas pelo CIS (Linux ou Windows) no Azure Marketplace, gerenciadas pelo CIS, podem causar falhas de compilação com o serviço Construtor de Imagens de VM do Azure devido às suas configurações. Por exemplo:
- As imagens do Windows com a proteção CIS podem interromper a conectividade do WinRM, um pré-requisito para a criação do AIB.
- As imagens do CIS Linux podem falhar devido a problemas de permissão
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 há um log de erros com os erros de envio do modelo de imagem. Se houver um erro durante o envio, retorne-o verificando o status do modelo, especificamente examinando o ProvisioningState
e ProvisioningErrorMessage
/provisioningError
.
az image builder show --name $imageTemplateName --resource-group $imageResourceGroup
Get-AzImageBuilderTemplate -ImageTemplateName <imageTemplateName> -ResourceGroupName <imageTemplateResourceGroup> | Select-Object ProvisioningState, ProvisioningErrorMessage
Observação
Para o PowerShell, você precisará instalar os Módulos do PowerShell do Construtor de Imagens de VM.
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 que, depois de alternar para a versão mais recente da API, você não reverta para uma versão anterior, pois precisará alterar sua automação novamente para produzir o esquema de erro anterior. Não prevemos que o esquema de erro seja alterado novamente em versões futuras.
Saída de erro para a versão 2020-02-14 e anterior
{
"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."
}
Saída de erro para a versão 01-10-2021 e anterior
{
"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."
}
}
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ê envia um modelo de configuração de imagem e o envio falha, um artefato de modelo com falha ainda existe. Exclua o modelo com falha.
Como atribuir a MSI novamente em modelos de imagem
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 as MSIs (Identidades de Serviço Gerenciado) atribuídas ao modelo de imagem não podem ser usadas:
- O modelo do Construtor de Imagens usa um grupo de recursos de preparo fornecido pelo cliente e a MSI é excluída antes que o modelo de imagem seja excluído (cenário do grupo de recursos de preparo)
- As Identidades de Serviço Gerenciado (MSIs) criadas e atribuídas ao modelo de imagem não podem ser usadas
Solução
Use a CLI do Azure para redefinir a identidade no modelo de imagem. Atualize a CLI do Azure para a versão 2.45.0 ou posterior.
Remover a identidade gerenciada do modelo do Construtor de Imagens de destino
az image builder identity remove -g <template resource group> -n <template name> --user-assigned <identity resource id>
Atribuir novamente a identidade ao modelo do Construtor de Imagens de destino
az image builder identity assign -g <template rg> -n <template name> --user-assigned <identity resource id>
A operação de recurso concluída com um estado de provisionamento de 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 de falha na implantação do recurso ocorre devido à falta de permissões. Esse erro também pode ser causado por um conflito com o grupo de recursos de preparo.
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
personalizador 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.
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
Falta de permissões.
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
personalizador 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.
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.
Erro de autorização ao criar disco
O build do Construtor de Imagens do Azure falha com um erro de autorização semelhante ao seguinte:
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 é causado ao tentar especificar um grupo de recursos pré-existente e uma VNet para o serviço do Construtor de Imagens do Azure com uma imagem de origem do Windows.
Solução
Você precisará atribuir a função de colaborador ao grupo de recursos da entidade de serviço correspondente ao aplicativo primário do Construtor de Imagens do Azure usando o comando da CLI ou as instruções do portal abaixo.
Primeiro, valide se a entidade de serviço está associada ao aplicativo primário do Construtor de Imagens do Azure usando o seguinte comando da CLI:
az ad sp show --id {servicePrincipalName, or objectId}
Em seguida, para implementar essa solução usando a CLI, 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 nesta documentação: Atribua funções do Azure usando o RBAC do portal do Azure – Azure.
Para a Etapa 1: identificar o escopo necessário: o escopo necessário é o grupo de recursos.
Para a Etapa 3: Selecione a função apropriada: a função é Colaborador.
Para a Etapa 4: Selecionar quem precisa de acesso: selecione o membro "Construtor de Imagens de Máquina Virtual do Azure"
Em seguida, prossiga para a Etapa 6: Atribuir função para atribuir a função.
Solucionar problemas de build
Para falhas do build de imagem, obtenha o erro no lastrunstatus
e examine 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
Acesso a logs dinâmicos durante o build de imagem
Para monitorar efetivamente o progresso do build de imagem, você pode acessar os logs dinâmicos gerados pelo AIB (Construtor de Imagens do Azure) nas ACI (Instâncias de Contêiner do Azure). Esses logs fornecem insights em tempo real sobre o processo de build, ajudando você a identificar quaisquer problemas ou confirmar se o build está em andamento conforme o esperado. Siga as etapas abaixo para localizar e exibir esses logs dinâmicos.
- Iniciar o build de imagem: inicie o processo de build de imagem.
- Navegue até grupos de recursos: acesse o portal do Azure e selecione “Grupos de Recursos”. Filtre pela assinatura em que o build de imagem foi iniciado.
- Selecione o grupo de recursos: localize e selecione o grupo de recursos de preparo associado ao build de imagem. Esse é o grupo de recursos que contém os recursos de build do serviço AIB. Para obter mais informações sobre o grupo de recursos de preparo, consulte Properties: stagingResourceGroup.
- Localize o contêiner de build: dentro desse grupo de recursos, procure o recurso chamado “vmimagebuilder-build-container-**********”. Se não estiver visível, aguarde alguns minutos e atualize a página.
- Acessar Configurações de Contêiner: no painel esquerdo, em “Configurações”, selecione “Contêineres”.
- Exibir Logs: vá para a guia “Logs” para exibir os logs dinâmicos durante o processo de build de imagem.
Se você não vir nenhum log, tente atualizar o contêiner após alguns minutos.
Baixando a personalização e/ou o log de validação após o build da imagem
Depois que o build de imagem for concluído, os logs de personalização e validação serão armazenados em um contêiner dentro da conta de armazenamento no grupo de recursos de preparo criado pelo serviço construtor de imagens da VM. Para obter mais informações sobre o grupo de recursos de preparo, consulte Properties: stagingResourceGroup.
Observação
Ao acessar o arquivo customization.log
ou validation.log
, é importante observar que, se o build de imagem tiver sido executado várias vezes, haverá várias pastas dentro do contêiner packerlogs
. Essas pastas são organizadas em ordem, da versão mais antiga até a mais recente.
Siga as etapas abaixo para localizar e baixar o arquivo customization.log
ou validation.log
:
- Selecione Conta de Armazenamento: no portal do Azure, navegue até Conta de Armazenamento relevante filtrando as contas de armazenamento no grupo de recursos de preparo criado pelo serviço do Construtor de Imagens da VM. Para obter mais informações sobre o grupo de recursos de preparo, consulte Properties: stagingResourceGroup.
- Acessar Dados de Armazenamento: na conta de armazenamento, vá para Armazenamento de dados.
- Abrir o contêiner: selecione a opção Contêiner e escolha o contêiner
packerlogs
. - Escolher a Pasta Correta: dentro do contêiner
packerlogs
, você verá várias pastas se o build de imagem tiver sido executado várias vezes. Essas pastas são organizadas, da versão mais antiga até a mais recente. Selecione a pasta correspondente ao build em que você tem interesse. - Baixar o arquivo de log: dentro da pasta selecionada, selecione o arquivo
customization.log
e/ouvalidation.log
e clique em Baixar para baixar o conteúdo.
Noções básicas sobre o log de personalização
O log é detalhado. Ele aborda o build de imagem, incluindo problemas com a distribuição da imagem, como a replicação da Galeria de Computação do Azure. Esses erros aparecem na mensagem de erro do status do modelo de imagem.
O arquivo customization.log
inclui as seguintes fases:
Fase de Implantação da VM de build e das dependências usando modelos do ARM no grupo de recursos de preparo IT_. Essa fase inclui vários POSTs para o provedor de recursos do Construtor de Imagens de VM:
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 ... ..
Fase de 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=""
Fase de Conexão à 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 VM 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!
Fase de Execução das personalizações. Quando as personalizações são executadas, você pode identificá-las examinando o arquivo customization.log. Pesquise por (telemetria) .
(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 hasfinished
Fase de Desprovisionamento. O Construtor de Imagens de VM adiciona um personalizador oculto. Essa etapa de desprovisionamento é responsável por preparar a VM para o desprovisionamento. No Windows, ele é executado
Sysprep
(usando c:\DeprovisioningScript.ps1). N o Linux, ele é executadowaagent-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."}
Fase de Limpeza. Depois que o build for concluído, os recursos do Construtor de Imagens da VM serã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 ...
Dicas para solução de problemas de personalização de script ou embutida
- Teste o código antes de fornecê-lo ao Construtor de Imagens de VM.
- Verifique se o Azure Policy e o Firewall permitem a conectividade com recursos remotos.
- Comentários de saída para o console usando
Write-Host
ouecho
. Isso permite que você pesquise o arquivo customization.log.
Solução de problemas comuns de build
A implantação de modelo falhou por causa da 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 acima é resultado do uso de um Azure Key Vault com acesso público desabilitado. No momento, o Construtor de Imagens do Azure não dá suporte a essa configuração.
Solução
O Azure Key Vault deve ser criado com o 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
Falha na personalização.
Solução
Examine o log para localizar falhas nos personalizadores. Pesquise por (telemetria) .
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
Tempo limite ultrapassado
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
O build excedeu o tempo limite de build. Esse erro é visto no 'lastrunstatus'.
Solução
Examine o arquivo customization.log. Identifique o último personalizador executado. Pesquise por (telemetria), começando pelo final do log.
Verifique as personalizações do script. As personalizações podem não estar suprimindo a interação do usuário para comandos, como as
quiet
opções. Por exemplo,apt-get install -y
faz com que a execução do script aguarde a interação do usuário.Se você estiver usando o
File
personalizador para baixar artefatos com mais de 20 MB, confira a seção de soluções alternativas.Examine os erros e as dependências no script que podem fazê-lo aguardar.
Se você acreditar que as personalizações precisam de mais tempo, aumente o valor de buildTimeoutInMinutes. O padrão é de 4 horas.
Se tiver ações com uso intensivo de recursos, como baixar GB (gigabytes) de arquivos, considere o tamanho da VM de build subjacente. O serviço usa uma VM Standard_D1_v2. Ela tem 1 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. Repita o build com uma VM com mais memória definindo o VM_Size.
Muito tempo para o download de um arquivo
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
File
personalizador está baixando um arquivo grande.
Solução
File
O 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 o wget
ou o curl
. No Windows, você pode usar o Invoke-WebRequest
.
O compilador falha continuamente ao executar Windows-Restart 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 de atualização do Windows é declarada antecipadamente em imagens baseadas no Windows Server 2016.
Solução
Aumente restartTimeout
de 15 minutos para 30 minutos.
Erro ao aguardar a Galeria de Computação do Azure
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 atingiu o tempo limite aguardando a imagem ser adicionada e replicada para a Galeria de Computação do Azure. Se a imagem está sendo injetada na galeria,você pode presumir que o build da imagem foi bem-sucedido. No entanto, o processo geral falhou, pois o Construtor de Imagens de VM estava aguardando a Galeria de Computação do Azure para concluir a replicação. Embora o build tenha falhado, a replicação continua. Você pode obter as propriedades da versão da imagem verificando o runOutputde distribuição.
$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ção de 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
Esgotamento de recursos. Normalmente, esse problema é visto 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.
O build foi concluído, 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
O aviso acima pode ser ignorado sem problemas.
Como ignorar a criação de imagem
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
O aviso acima pode ser ignorado sem problemas.
Recurso não 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
Falta de permissões.
Solução
Verifique novamente para garantir que o Construtor de Imagens de VM tenha 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.
Sysprep
tempo
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
A causa pode ser um problema de tempo devido ao tamanho da VM D1_V2. Se as personalizações forem limitadas e executadas em menos de três segundos, comandos de Sysprep
serão executados pelo Construtor de Imagens de VM para desprovisionar. Quando o Construtor de Imagens de VM desprovisiona, o comando Sysprep
verifica o WindowsAzureGuestAgent, que pode não estar totalmente instalado e assim 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 de 60 segundos do PowerShell.
Provedor de Instâncias de Contêiner do Azure não 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 modelo e adicione os comandos da CLI do Azure ou do PowerShell:
- CLI do Azure:
az provider register -n Microsoft.ContainerInstance
- PowerShell:
Register-AzResourceProvider -ProviderNamespace Microsoft.ContainerInstance
Cota de Instâncias de Contêiner do Azure excedida
Erro
Azure Container Instances quota exceeded"
Causa
Sua assinatura não tem cota suficiente de Instâncias de Contêiner do Azure (ACI) para o Construtor de Imagens do Azure criar uma imagem com êxito.
Solução
Você pode fazer o seguinte para disponibilizar a cota de ACI para o Construtor de Imagens do Azure:
- Pesquise outro uso das Instâncias de Contêiner do Azure em sua assinatura e remova todas as instâncias desnecessárias para disponibilizar a cota para o Construtor de Imagens do Azure.
- O Construtor de Imagens do Azure implanta a ACI apenas temporariamente enquanto um build está ocorrendo. Essas instâncias são excluídas após a conclusão do build. Se houver muitos builds de imagem simultâneos em sua assinatura, você poderá considerar adiar alguns dos builds de imagem. Isso reduz o uso simultâneo da ACI em sua assinatura. Se os modelos de imagem forem configurados para builds automáticos de imagem usando gatilhos, esses builds com falha serão repetidos automaticamente pelo Construtor de Imagens do Azure.
- Se os limites atuais de ACI para sua assinatura forem muito baixos para dar suporte aos cenários de criação de imagem, você poderá solicitar um aumento na cota da ACI.
Observação
Os recursos de ACI são necessários para builds de imagem isolada.
Muitas Instâncias de Contêiner do Azure implantadas em um período de tempo
Erro
"Muitas Instâncias de Contêiner do Azure implantadas em um período de tempo"
Causa
Sua assinatura não tem cota suficiente de ACI (Instâncias de Contêiner do Azure) para o Construtor de Imagens do Azure criar imagens simultaneamente com êxito.
Solução
É possível fazer o seguinte:
- Tente novamente seus builds com falha de maneira menos simultânea.
- Se os limites atuais de ACI para sua assinatura forem muito baixos para dar suporte aos cenários de criação de imagem, você poderá solicitar um aumento na cota da ACI.
Falha de build de imagem isolada
Erro
Os builds do Construtor de Imagens do Azure estão falhando devido ao Build de Imagem Isolada.
Causa
Os builds do Construtor de Imagens do Azure podem falhar por motivos listados em outros lugares neste documento. No entanto, há uma pequena chance de que um build falhe devido a Builds de Imagem Isolada, dependendo do seu cenário, cotas de assinatura ou algum erro de serviço imprevisto. Para obter mais informações, consulte Compilações de imagem isoladas.
Solução
Se você determinar que um build está falhando devido a builds de imagem isolada, você pode fazer o seguinte:
- Verifique se não há nenhuma Azure Policy bloqueando a implantação dos recursos mencionados na seção Pré-requisitos, especificamente nas Instâncias de Contêiner do Azure.
- Verifique se sua assinatura tem cota suficiente de Instâncias de Contêiner do Azure para dar suporte a todos os builds de imagem simultâneos. Para obter mais informações, confira cota excedida das Instâncias de Contêiner do Azure.
No momento, o Construtor de Imagens do Azure está em processo de implantação de builds de imagem isolada. Modelos de imagem específicos não estão vinculados a Builds de Imagem Isolada e o mesmo modelo de imagem pode ou não utilizar Builds de Imagem Isolada durante builds diferentes. Você pode fazer o seguinte para executar temporariamente seu build sem Builds de Imagem Isolada.
- Tente novamente sua compilação. Como os modelos de imagem não estão vinculados ao recurso Builds de Imagem Isolada, tentar novamente um build tem uma alta probabilidade de executar novamente sem builds de imagem isolada.
Se nenhuma dessas soluções reduzir os builds de imagem com falha, você poderá entrar em contato com o suporte do Azure para recusar temporariamente sua assinatura de Builds de Imagem Isolada. Para obter mais informações, confira Criar uma solicitação de Suporte do Azure.
Observação
Os builds de imagem isolados eventualmente serão habilitados em todas as regiões e modelos. Portanto, as mitigações acima devem ser consideradas temporárias e a causa subjacente de falhas de build deve ser resolvida.
O build é cancelado depois que o contexto de cancelamento de contexto é cancelado
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. Isso 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 nos scripts se há alterações ou habilitação do firewall, alterações no SSH ou WinRM e verifique se as alterações permitem a 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 no log no início da compilação
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 zero para usar o padrão ou como maior que cinco minutos para substituir o padrão. Altere o tempo limite em seu modelo para zero a fim de usar o padrão ou para um mínimo de seis minutos.
Erros de exclusão de recursos
Erro do
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 em sua maioria são inofensivas, porque as exclusões de recursos são refeitas várias vezes e, em geral, eventualmente são bem-sucedidas. Você pode verificar isso por continuar a seguir os logs de exclusão até observar uma mensagem de êxito. Como alternativa,você pode inspecionar o grupo de recursos de preparo para confirmar se o recurso foi excluído.
Fazer essas observações é especialmente importante em falhas de build, onde 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 estão presas na exclusão do modelo, o log de personalização pode mostrar o erro abaixo:
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 recursos abaixo um por um na ordem específica:
- Conexão de ponto de extremidade privado Você pode encontrá-lo no recurso de serviço de link privado acessando a guia "conexões de ponto de extremidade privado" na página de recursos do serviço de link privado.
- Serviço de link privado.
- Adaptador de rede e balanceador de carga.
- Grupo de recursos.
- Modelo de imagem.
Para obter assistência adicional, você pode entrar em contato com Suporte do Azure para resolver o erro de exclusão paralisada.
Destino de distribuição não 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 do Patch.
Solução
A matriz de distribuição deve conter todos os destinos de distribuição, ou seja, novos destinos (se houver), destinos existentes sem alterações e destinos atualizados. Se quiser remover um destino de distribuição existente, exclua e recrie o modelo de imagem, pois atualmente não há suporte para a exclusão de um destino de distribuição por meio da API de Patch.
Campos obrigatórios 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 obrigatório está ausente em um destino de distribuição.
Solução
Ao criar uma solicitação, forneça todos os campos obrigatórios em um destino de distribuição, mesmo se não houver nenhuma alteração.
Tarefas do DevOps
Solucionar problemas na tarefa
A tarefa falhará somente se ocorrer um erro durante a personalização. Quando isso acontece, 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, você precisa saber o nome do modelo. Vá para pipeline>build com falha e, em seguida, faça uma busca detalhada na tarefa do DevOps do Construtor de Imagens de VM.
Você verá o log e um nome de modelo:
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
- Vá para o portal do Azure, procure o nome do modelo no grupo de recursos e procure o grupo de recursos digitando IT_*.
- Selecione o nome da conta de armazenamento >blobs>contêineres>logs.
Solucionar problemas em builds bem-sucedidos
Ocasionalmente, talvez seja necessário investigar builds bem-sucedidos e examinar os logs deles. Conforme mencionado anteriormente, se o build de imagem for bem-sucedido, o grupo de recursos de preparo que contém os logs será excluído como parte da limpeza. No entanto, para evitar uma limpeza automática, você pode introduzir um sleep
após o comando embutido e, em seguida, exibir os logs conforme o build for pausado. Para fazer isso, faça o seguinte:
- Atualize o comando embutido adicionando Write-Host/Echo "Suspender". Isso dá a você tempo para pesquisar no log.
- Adicione um valor de
sleep
de pelo menos 10 minutos usando um comando Start-Sleep ouSleep
Linux. - 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 o build não foi cancelado por um usuário, ele foi cancelado pelo Agente de Usuário do Azure DevOps. Provavelmente, o tempo limite de uma hora foi atingido devido aos recursos do Azure DevOps. Se estiver usando um projeto e um agente privados, você terá 60 minutos de tempo de build. Se o build ultrapassar o tempo limite, o 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 agentes do DevOps ou procurar 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.
Logon lento do Windows
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
No build da imagem, verifique se:
- Não existem reinicializações pendentes exigidas pela adição de um personalizador de Reinicialização do Windows como a última personalização.
- Toda a instalação do software está concluída.
Adicione a opção /mode:vm ao
Sysprep
padrão que o Construtor de Imagens de VM usa. Para obter mais informações, vá para a seção "Substituir os comandos" em "As VMs criadas a partir de imagens do Construtor de Imagens de VM não foram criadas com sucesso."
As VMs criadas a partir de imagens do Construtor de Imagens de VM não foram criadas com sucesso
Por padrão, o Construtor de Imagens de VM executa o código de desprovisionamento no final de cada fase da personalização da imagem para generalizar a imagem. Generalizar uma imagem é configurá-la para o reuso para criar várias VMs. Como parte do processo, você pode passar as configurações da VM, como nome de host, nome de usuário e assim por diante. No Windows, o Construtor de Imagens de VM executa o Sysprep
e, no Linux, o Construtor de Imagens da VM executa o waagent -deprovision
.
No Windows, o Construtor de Imagens de VM usa um comando Sysprep
genérico. 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
. Observe que o Construtor de Imagens de VM é uma ferramenta de automação de imagens responsável pela execução do comando Sysprep
com êxito. No entanto, você pode precisar de comandos Sysprep
diferentes para tornar sua imagem reutilizável. No Linux, o Construtor de Imagens de VM usa um comando waagent -deprovision+user
genérico. Para obter mais informações, confira Documentação do Agente de 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ê tenha usado 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 ela atinge o tempo limite. Nesse caso, faça um dos seguintes procedimentos:
- Examine a documentação do Windows Server Sysprep.
- Crie uma solicitação de suporte com a equipe de Suporte do Atendimento ao Cliente do Windows Server Sysprep. Eles podem ajudar a solucionar o problema e aconselhar sobre o comando
Sysprep
correto.
Locais do comando e nomes de arquivo
No Windows:
c:\DeprovisioningScript.ps1
No Linux:
/tmp/DeprovisioningScript.sh
O comando Sysprep
: 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 ...'
O comando -deprovision
: Linux
sudo /usr/sbin/waagent -force -deprovision+user && export HISTSIZE=0 && sync
Substituir os comandos
Para substituir os comandos, use os provisionadores de script de shell ou o PowerShell para criar os arquivos de comando com o nome exato do arquivo e coloque-os nos diretórios listados anteriormente. O Construtor de Imagens de VM lê esses comandos e grava a saída no arquivo customization.log.
Obter suporte
Se consultou as diretrizes e ainda está tendo problemas, você pode abrir um caso de suporte. Se certifique de selecionar o produto e o tópico de suporte corretos. Isso garantirá que você esteja conectado à equipe de suporte do Construtor de Imagens de VM do Azure.
Selecionando o produto do caso:
Product Family: Azure
Product: Virtual Machine Running (Window\Linux)
Support Topic: Azure Features
Support Subtopic: Azure Image Builder
Próximas etapas
Para saber mais, confira a Visão geral do Construtor de Imagens de VM.