Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: ✔️ Linux VMs ✔️ Conjuntos de escala flexível
Use este artigo para solucionar e resolver problemas comuns que você pode encontrar ao usar o Azure VM Image Builder.
As falhas do Construtor de Imagens de VM podem ocorrer em duas áreas:
- Durante o envio do modelo de imagem
- Durante a construção de imagem
Pré-requisitos
Estes pré-requisitos são para criar uma compilação:
O serviço VM Image Builder se comunica com a máquina virtual (VM) de compilação usando o Gerenciamento Remoto do Windows (WinRM) ou Secure Shell (SSH). Não desative essas configurações como parte da compilação.
O VM Image Builder cria recursos no grupo de recursos de teste como parte das construções. A lista exata de recursos depende da configuração de rede especificada pelo modelo de imagem. Certifique-se de verificar se a Azure Policy não impede que o VM Image Builder crie ou utilize os recursos necessários.
- Crie um grupo de
IT_
recursos. - Criar uma conta de armazenamento sem firewall.
- Implante instâncias de contêiner do Azure.
- Implante recursos da Rede Virtual do Azure (e sub-redes dentro deles).
- Implementar Azure Private Endpoint recursos.
- Implante arquivos do Azure.
- Crie um grupo de
Certifique-se de que a Política do Azure não instale recursos não intencionais na VM de compilação ou em outros recursos de preparação, como extensões do Azure ou modificações de marca.
Garanta que o VM Image Builder tenha as permissões corretas para ler/escrever imagens e para conectar-se à conta de armazenamento. Para mais informações, consulte a documentação de permissões do Azure CLI ou do Azure PowerShell.
O VM Image Builder falha na criação se os scripts ou comandos inline falharem com erros (códigos de saída não zero). Certifique-se de testar os scripts personalizados e verificar se eles são executados sem erro (código
0
de saída) ou exigem entrada do usuário. Para mais informações, veja Criar uma imagem de Área de Trabalho Virtual do Azure usando o VM Image Builder e PowerShell.Verifique se sua assinatura tem uma cota suficiente para Instâncias de Contêiner do Azure.
Cada compilação de imagem pode implantar até um recurso temporário de Instâncias de Contêiner do Azure (de quatro núcleos padrão) no grupo de recursos de preparação. Esses recursos são necessários para compilações de imagens isoladas.
Nota
As Imagens Reforçadas do CIS (Linux ou Windows) no Azure Marketplace, gerenciadas pelo Centro de Segurança da Internet (CIS), podem causar falhas de compilação com o serviço Construtor de Imagens de VM devido às suas configurações. Por exemplo:
- As Imagens Reforçadas do CIS para Windows podem interromper a conectividade do WinRM, um pré-requisito para compilações do Construtor de Imagens de VM.
- CIS Hardened Images para Linux podem falhar devido a problemas de permissões.
Solucionar erros de submissão de modelos de imagem
Os erros de envio do modelo de imagem são reportados apenas no momento da submissão. Não existe nenhum log de erros para erros de envio de modelo de imagem. Se houver um erro durante o envio, você pode retornar o erro verificando o status do modelo. Especificamente, reveja ProvisioningState
e ProvisioningErrorMessage
, /, provisioningError
.
Aqui está o comando para a CLI do Azure:
az image builder show --name $imageTemplateName --resource-group $imageResourceGroup
Aqui está o comando para o Azure PowerShell. Para usar o Azure PowerShell, você precisa instalar os módulos PowerShell do VM Image Builder.
Get-AzImageBuilderTemplate -ImageTemplateName <imageTemplateName> -ResourceGroupName <imageTemplateResourceGroup> | Select-Object ProvisioningState, ProvisioningErrorMessage
Aqui está a mensagem de erro para as versões de 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 2021-10-01 introduz uma alteração no esquema de erro que fará parte de todas as versões futuras da API. Se você tiver qualquer automação do Construtor de Imagens de VM do Azure, esteja ciente da nova saída de erro quando alternar para a versão da API 2021-10-01 ou posterior.
Recomendamos que, depois de mudar para a versão mais recente da API, não reverta para uma versão anterior. Se reverter, terá de alterar a sua automação novamente para produzir o esquema de erro anterior. Não esperamos que o esquema de erro seja alterado novamente em versões futuras.
As seguintes seções apresentam orientações para resolver problemas comuns na submissão de modelos de imagem.
A atualização ou melhoria de modelos de imagem não é suportada no momento
Erro
'Conflict'. Details: Update/Upgrade of image templates is currently not supported
Motivo
O modelo já existe.
Solução
Se enviar um modelo de configuração de imagem e o envio falhar, um artefacto de modelo falhado ainda existirá. Excluir o modelo falhado.
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.
Motivo
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 de grupo de recursos de preparaçã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 do Construtor de Imagens da 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, consulte Configurar permissões do VM Image Builder usando o Azure CLI ou Configurar permissões do VM Image Builder 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.
Motivo
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 do modelo do Construtor de Imagens da VM de destino:
az image builder identity show -g <template resource group> -n <template name>
Reveja as atribuições de funções 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, consulte Configurar permissões do VM Image Builder usando o Azure CLI ou Configurar permissões do VM Image Builder usando o PowerShell.
A operação de recursos terminou com um estado de provisionamento final de "Falhado"
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."
Motivo
Na maioria dos casos, o erro sobre falha de implantação de recursos ocorre devido a permissões ausentes. Um conflito com o grupo de recursos de encenação também pode causar este erro.
Solução
Dependendo do seu cenário, o VM Image Builder pode precisar de permissões para:
- A imagem de origem ou o grupo de recursos da Galeria de Computação do Azure (anteriormente Galeria de Imagens Partilhadas).
- A imagem de distribuição ou o recurso do Azure Compute Gallery.
- A conta de armazenamento, o contentor ou o blob que o
File
personalizador está a aceder.
Além disso, certifique-se de que o nome do grupo de recursos de preparo seja especificado exclusivamente para cada modelo de imagem.
Para obter mais informações sobre como configurar permissões, consulte Configurar permissões do VM Image Builder usando o Azure CLI ou Configurar permissões do VM Image Builder 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
Motivo
Faltam permissões.
Solução
Dependendo do seu cenário, o VM Image Builder pode precisar de permissões para:
- A imagem de origem ou o grupo de recursos da Galeria de Computação do Azure.
- A imagem de distribuição ou o recurso do Azure Compute Gallery.
- A conta de armazenamento, o contentor ou o blob que o
File
personalizador está a aceder.
Para obter mais informações sobre como configurar permissões, consulte Configurar permissões do VM Image Builder usando o Azure CLI ou Configurar permissões do VM Image Builder usando o PowerShell.
Falha na etapa de compilação 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."
Motivo
O VM Image Builder não consegue localizar a imagem de origem.
Solução
Certifique-se de que a imagem de origem está correta e existe no local do Construtor de Imagens VM.
Ocorre um erro ao transferir um ficheiro externo para um ficheiro 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'..
Motivo
O nome ou localização do ficheiro está incorreto(a), ou a localização não é acessível.
Solução
Certifique-se de que o ficheiro seja acessível. Verifique se o nome e a localização estão corretos.
Determinados repositórios de arquivos podem usar pacotes de codificação sem suporte e causar erros de download com o VM Image Builder. Armazene arquivos e scripts em uma conta de armazenamento do Azure para ajudar a garantir pacotes de codificação seguros e acessibilidade pelo Construtor de Imagens de VM. Para obter mais informações sobre como armazenar seus arquivos em contas de armazenamento do Azure, consulte Visão geral da conta de armazenamento.
Erro de autorização ocorre com a criação de um disco
A compilação do VM Image Builder 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.'
Motivo
Este erro acontece quando tenta especificar um grupo de recursos preexistente e uma rede virtual para o serviço VM Image Builder com uma imagem de origem do Windows.
Solução
Você precisa atribuir a função de Colaborador ao grupo de recursos da entidade de serviço que corresponde ao aplicativo primário do VM Image Builder. 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 primário 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:
Para a Etapa 1: Identificar o escopo necessário, o escopo necessário é o seu grupo de recursos.
Para a Etapa 3: Selecione a função apropriada, a função é Colaborador.
Para a Etapa 4: selecione quem precisa de acesso, selecione o membro do Construtor de Imagens de Máquina Virtual do Azure .
Na Etapa 7: Atribuir função, você atribui a função.
Solucionar problemas de falhas de compilação
Para falhas de construção de imagem, obtenha o erro de lastRunStatus
e, em seguida, reveja os detalhes no ficheiro customization.log
.
az image builder show --name $imageTemplateName --resource-group $imageResourceGroup
Get-AzImageBuilderTemplate -ImageTemplateName <imageTemplateName> -ResourceGroupName <imageTemplateResourceGroup> | Select-Object LastRunStatus, LastRunStatusMessage
Registo de personalização
Acesse logs em tempo real durante a criação da imagem
Para monitorar efetivamente o progresso da compilação da imagem, você pode acessar os logs em tempo real que o Construtor de Imagens de VM gera nas Instâncias de Contêiner do Azure. Esses logs fornecem informações em tempo real sobre o processo de compilação. Eles ajudam a identificar quaisquer problemas ou confirmar que a compilação está prosseguindo conforme o esperado.
Para localizar e visualizar os logs dinâmicos:
Inicie o processo de construção da imagem.
Vá para o portal do Azure e selecione Grupos de Recursos. Filtre pela subscrição onde iniciou a criação da imagem.
Localize e selecione o grupo de recursos de preparo associado à compilação da imagem. Este grupo de recursos contém os recursos de compilação para o serviço VM Image Builder. Para mais informações sobre o grupo de recursos de staging, consulte Propriedades: stagingResourceGroup.
Dentro deste grupo de recursos, procure o recurso chamado
vmimagebuilder-build-container-**********
. Se não estiver visível, aguarde alguns minutos e atualize a página.No painel esquerdo, em Configurações, selecione Contêineres.
Vá para a guia Logs para visualizar os logs ao vivo durante o processo de criação da imagem.
Se não vir nenhum registo, tente atualizar o contentor após alguns minutos.
Baixe o log de personalização e/ou validação após a construção da imagem
Após a conclusão da compilação da imagem, os logs de personalização e validação são armazenados em um contêiner dentro da conta de armazenamento no grupo de recursos de preparo criado pelo serviço VM Image Builder. Para mais informações sobre o grupo de recursos de staging, consulte Propriedades: stagingResourceGroup.
Para localizar e baixar o customization.log
arquivo ou validation.log
:
No portal do Azure, vá para a conta de armazenamento relevante filtrando as contas de armazenamento dentro do grupo de recursos de preparo que o serviço Construtor de Imagens da VM criou.
Na conta de armazenamento, vá para Armazenamento de dados.
Selecione a opção Contêiner e, em seguida, escolha o
packerlogs
contêiner.Dentro do
packerlogs
contêiner, várias pastas aparecem se a compilação da imagem for executada várias vezes. Estas pastas estão organizadas desde a compilação mais antiga até à mais recente. Selecione a pasta que corresponde à compilação em que está interessado.Dentro da pasta selecionada, selecione o
customization.log
arquivo e/ouvalidation.log
e, em seguida, selecione Download para baixar seu conteúdo.
Etapas do log de personalização
O registo é detalhado. Ele abrange a criação 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 apresentados na mensagem de erro do status do modelo de imagem.
O customization.log
ficheiro inclui as seguintes fases:
Implante a VM de compilação e as dependências usando modelos do Azure Resource Manager no
IT_
grupo de recursos de preparação. Este estágio inclui váriasPOST
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 ... ..
Obtenha o status das implantações. Esta etapa inclui o status de cada implantação de 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=""
Conecte-se à VM de compilação.
No Windows, o Construtor de Imagens de VM conecta-se usando 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 VM Image Builder conecta-se utilizando 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!
Executar personalizações. Quando as personalizações são executadas, você pode identificá-las revisando o
customization.log
arquivo. Pesquisar 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
Desprovisionamento. O VM Image Builder adiciona um personalizador oculto. Esta etapa é responsável por preparar a VM para desprovisionamento. No Windows, ele é executado
Sysprep
(usandoc:\DeprovisioningScript.ps1
). No 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."}
Limpe. Após a conclusão da compilação, os recursos do VM Image Builder 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 ...
Resolução de problemas em scripts ou personalizações embutidas
As dicas a seguir podem ajudá-lo a solucionar problemas de customização de scripts ou personalizações embutidas:
- Teste o código antes de fornecê-lo ao VM Image Builder.
- Certifique-se de que a Política do Azure e o Firewall do Azure permitam a conectividade com recursos remotos.
- Envie comentários de saída para o console usando
Write-Host
ouecho
. Isso permite que você pesquise ocustomization.log
arquivo.
Resolva problemas comuns de construçã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>"
}
Motivo
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 VM Image Builder não oferece suporte a essa configuração.
Solução
Você deve criar o cofre de chaves com o acesso público habilitado.
Falha no comando de compilação 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."
Motivo
A falha de um comando packer build é uma falha de personalização.
Solução
Revise o registo para localizar falhas do personalizador. Procurar (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 esgotado
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'
Motivo
A compilação excedeu o tempo limite. Este erro aparece em lastRunStatus
.
Solução
Analise o
customization.log
arquivo. Identificar o último personalizador a executar. Procure(telemetry)
, começando pela parte inferior do log.Verifique as personalizações de scripts. As personalizações podem não estar suprimindo a interação do utilizador para comandos, como as opções
quiet
. Por exemplo,apt-get install -y
resulta na execução do script aguardando uma interação do utilizador.Se você estiver usando o
File
personalizador para baixar artefatos com mais de 20 MB, consulte a seção de soluções alternativas.Revise erros e dependências no script que podem fazer com que o script aguarde.
Se você espera que as personalizações precisem de mais tempo, aumente o valor de
buildTimeoutInMinutes
. O padrão é de 4 horas.Se você tiver ações que consomem muitos recursos, como baixar gigabytes de arquivos, considere o tamanho da VM de compilação subjacente.
O serviço usa uma Standard_D1_v2 VM. A VM tem uma vCPU e 3,5 GB de memória. Se estiver a transferir 50 GB, provavelmente esgotará os recursos da VM e causará falhas de comunicação entre o Criador de Imagens da VM e a VM de compilação. Tente novamente a compilação 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
Motivo
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 ficheiros maiores, use um script ou um comando embutido. Por exemplo, no Linux, você pode usar wget
ou curl
. No Windows, você pode usar 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.
Motivo
A etapa do Windows Update é declarada prematuramente em imagens baseadas no Windows Server 2016.
Solução
Aumente restartTimeout
de 15 minutos para 30 minutos.
Ocorre um 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}
Motivo
VM Image Builder ultrapassou o limite de tempo na espera para que a imagem fosse adicionada e replicada na Azure Compute Gallery.
Se a imagem estiver a ser injetada na galeria, pode assumir que a construção da imagem foi bem-sucedida. No entanto, o processo geral falhou porque o Construtor de Imagens de VM estava aguardando a Galeria de Computação do Azure para concluir a replicação.
Mesmo que a compilação 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
.
Os eventos informativos mostram recursos limitados 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
Motivo
A causa é o esgotamento dos recursos. Esse problema geralmente acontece quando o Windows Update é executado com o tamanho padrão da VM de compilação, D1_V2.
Solução
Aumentar o tamanho da máquina virtual de compilação.
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 de imagens 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.\""
},
Motivo
Faltam permissões.
Solução
Verifique novamente se o Construtor de Imagens de VM tem todas as permissões necessárias.
Para obter mais informações sobre como configurar permissões, consulte Configurar permissões do VM Image Builder usando o Azure CLI ou Configurar permissões do VM Image Builder usando o PowerShell.
Há um problema de temporizaçã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 ...
Motivo
O tamanho D1_V2 da VM pode ser a razão para o problema de temporização. Se as personalizações forem limitadas e executadas em menos de três segundos, o VM Image Builder executará Sysprep
comandos para desprovisionar. Quando o Construtor de Imagens de VM é desativado, o comando Sysprep
verifica WindowsAzureGuestAgent
, o que pode não estar totalmente instalado e pode causar o problema de temporização.
Solução
Para evitar o problema de temporização, 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 está registrado
Erro
Azure Container Instances provider not registered for your subscription.
Motivo
A sua assinatura de modelo não tem o provedor de Instâncias de Conteiner do Azure registado.
Solução
Registre o provedor de Instâncias de Contêiner do Azure para sua assinatura de modelo e adicione um dos seguintes comandos:
- CLI do Azure:
az provider register -n Microsoft.ContainerInstance
- Azure PowerShell:
Register-AzResourceProvider -ProviderNamespace Microsoft.ContainerInstance
A assinatura excedeu a cota de Instâncias de Contêiner do Azure
Erro
Azure Container Instances quota exceeded
Motivo
Sua assinatura não tem cota suficiente de Instâncias de Contêiner do Azure para o Construtor de Imagens de VM criar 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 na sua subscrição. 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 uma compilação. Essas instâncias são excluídas após a conclusão da compilação.
Se muitas compilações de imagem simultâneas estiverem sendo executadas em sua assinatura, você poderá considerar atrasar algumas das compilações de imagem. Esse atraso reduz o uso simultâneo de Instâncias de Contêiner do Azure em sua assinatura.
Se os seus modelos de imagem estiverem configurados para construções automáticas de imagem através de gatilhos, o VM Image Builder repetirá automaticamente as construções que falharem.
Se os limites atuais de Instâncias de Contêiner do Azure para sua assinatura forem muito baixos para dar suporte aos cenários de criação de imagem, você poderá solicitar um aumento na sua cota de Instâncias de Contêiner do Azure.
Nota
Os recursos das Instâncias de Contêiner do Azure são necessários para Compilações de Imagem Isoladas.
Muitos recursos de Instâncias de Contêiner do Azure são implantados dentro de um período de tempo
Erro
"Muitas instâncias de contenedor do Azure implantadas num curto período de tempo."
Motivo
A sua subscrição não tem quota suficiente de Azure Container Instances para que o Construtor de Imagens de VM consiga criar imagens simultaneamente com êxito.
Solução
Pode experimentar estas soluções:
- Tente novamente as suas compilações falhadas de uma forma menos concorrente.
- Se os limites atuais de Instâncias de Contêiner do Azure para sua assinatura forem muito baixos para dar suporte aos cenários de criação de imagem, você poderá solicitar um aumento na sua cota de Instâncias de Contêiner do Azure.
O recurso Compilações de Imagem Isolada causa uma falha
Erro
As compilações do Construtor de Imagens de VM estão falhando devido a compilações de imagens isoladas.
Motivo
As compilações do Construtor de Imagens de VM podem falhar por motivos listados em outro lugar neste artigo. No entanto, há uma pequena chance de que uma compilação falhe devido a compilações de imagem isoladas, dependendo do seu cenário, cotas de assinatura ou algum erro de serviço imprevisto. Para mais informações, consulte Isolated Image Builds.
Solução
Se você determinar que uma compilação está falhando devido a compilações de imagem isoladas, certifique-se de que:
- Nenhuma política do Azure está bloqueando a implantação de recursos mencionados na seção Pré-requisitos deste artigo (especificamente, Instâncias de Contêiner do Azure).
- Sua assinatura tem cota suficiente para Instâncias de Contêiner do Azure para dar suporte a todas as suas compilações de imagem simultâneas. Para obter mais informações, consulte a seção Assinatura excedeu a cota de Instâncias de Contêiner do Azure deste artigo.
O VM Image Builder está atualmente no processo de implantação de compilações de imagens isoladas. Modelos de imagem específicos não estão vinculados a compilações de imagem isoladas, e o mesmo modelo de imagem pode ou não usar compilações de imagem isoladas durante compilações diferentes.
Para executar temporariamente a sua compilação sem compilações de imagem isoladas, tente novamente a sua compilação. Como os templates de imagem não estão vinculados ao recurso Compilações de Imagem Isolada, ao tentar novamente uma compilação existe uma alta probabilidade de que seja repetida sem as Compilações de Imagem Isolada.
Se nenhuma dessas soluções atenuar compilações de imagem com falha, você poderá entrar em contato com o suporte do Azure para desativar temporariamente sua assinatura de Compilações de Imagem Isoladas. Para mais informações, consulte Criar um pedido de suporte do Azure.
Nota
Se o recurso Compilações de Imagem Isolada for eventualmente habilitado em todas as regiões e modelos, as atenuações anteriores serão apenas temporárias. É melhor resolver a causa subjacente das falhas de compilação.
O build é cancelado após a anulação 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
Motivo
VM Image Builder usa a porta 22 (Linux) ou 5986 (Windows) para se conectar à VM de compilação. Esse problema ocorre quando o serviço é desconectado da VM de compilação durante uma compilação de imagem. As razões para a desconexão podem variar, mas ativar ou configurar um firewall no script pode bloquear as portas mencionadas anteriormente.
Solução
Revise seus scripts para verificar se há alterações ou habilitações de firewall ou alterações em SSH ou WinRM. Certifique-se de que todas as alterações permitam conectividade constante entre o serviço e a VM de compilação nas portas mencionadas anteriormente. Para mais informações, consulte as opções de rede do VM Image Builder.
Os erros JWT aparecem no log no início da compilação
Erro
No início do processo de construção, a construção falha e o log indica um erro de JSON Web Token (JWT).
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:
Motivo
O valor buildTimeoutInMinutes
no modelo está definido para entre 1 e 5 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 no modelo para 0 minutos para usar o padrão ou altere-o para um mínimo de 6 minutos.
Erros de remoção de recursos são exibidos
Erro
Recursos intermédios são limpos perto do final da compilação, e o log de personalização pode mostrar vários erros de eliminaçã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"...
Motivo
Essas mensagens de log de erros são principalmente inofensivas, porque as exclusões de recursos são repetidas várias vezes. Normalmente, acabam por ter sucesso. Você pode verificar esse comportamento continuando a seguir os logs de exclusão até observar uma mensagem de êxito. Como alternativa, pode-se 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 construção. Essas mensagens de erro podem levá-lo a concluir que elas são a razão para as falhas, mesmo quando os erros reais podem estar em outro lugar.
Erro
Quando as imagens estão bloqueadas na eliminação do template, 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=[]
Motivo
O erro ocorre porque a interface de rede está atualmente em uso com um ponto de extremidade privado.
Solução
Para resolver o problema, exclua os seguintes recursos, um por um, nesta ordem específica:
- Conexão de terminal privado. Você pode encontrar essa conexão no recurso de serviço de Link Privado do Azure indo para a guia Conexões de ponto de extremidade privado na página do recurso de serviço de Link Privado.
- Serviço de Link Privado.
- Interface de rede e balanceador de carga.
- Grupo de recursos.
- 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 preso.
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.
Motivo
Este 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), alvos existentes sem alteração e destinos atualizados. Se quiser remover um destino de distribuição existente, exclua e recrie 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.
Faltam campos obrigatórios
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.
Motivo
Este erro ocorre quando um campo obrigatório está ausente de um destino de distribuição.
Solução
Ao criar uma solicitação, certifique-se de fornecer todos os campos obrigatórios em um destino de distribuição, mesmo que não haja alterações.
Solucionar problemas do Azure DevOps
Uma tarefa do Azure DevOps falhará somente se ocorrer um erro durante a personalização. Quando esse erro 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:
Encontre o nome do modelo. Vá para Pipeline>Failed build e, em seguida, faça drill down na tarefa Azure DevOps no VM Image Builder. Observe 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
Vá para o portal do Azure, procure o nome do modelo no grupo de recursos e, em seguida, procure o grupo de recursos inserindo IT_.
Selecione o nome da conta de armazenamento e, em seguida, selecione blobs>containers>logs.
Pode ser ocasionalmente necessário investigar compilações bem-sucedidas e rever os seus registos. Como mencionado anteriormente, se a construção da imagem for bem-sucedida, o grupo de recursos de staging 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 embutido e, em seguida, exibir os logs à medida que a compilação é pausada:
- Atualize o comando embutido adicionando
Write-Host / Echo "Sleep"
. Esta adição dá-lhe tempo para pesquisar no registo. - Adicione um valor de pelo menos 10 minutos usando um comando
Start-Sleep
ouSleep
Linux. - Use este método para identificar a localização do log e, depois, continue a fazer o download ou a verificar o log até chegar a
sleep
.
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
Motivo
Se um usuário não cancelou a compilação, o agente de usuário do Azure DevOps a cancelou. Muito provavelmente, o tempo limite de uma hora ocorreu devido aos recursos do Azure DevOps. Se estiver a usar um projeto e um agente privados, terá 60 minutos de tempo de compilação. Se a compilação exceder o tempo limite, o Azure DevOps cancelará a tarefa em execução.
Para mais informações sobre as capacidades e limitações 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 de sua compilação. Por exemplo, se você estiver distribuindo para a Galeria de Computação do Azure, poderá replicá-los para uma região ou replicá-los de forma assíncrona.
O logon do Windows é lento
Erro
Este erro pode ocorrer quando cria uma imagem do Windows 10 utilizando o VM Image Builder, cria uma máquina virtual (VM) a partir da imagem e, em seguida, utiliza o Protocolo de Ambiente de Trabalho Remoto (RDP). Aguarde vários minutos no primeiro ecrã de início de sessão e, em seguida, um ecrã azul apresenta a seguinte mensagem:
Please wait for the Windows Modules Installer
Solução
Na construção da imagem, certifique-se de que:
- Não são necessárias reinicializações pendentes ao adicionar um personalizador de reinicialização do Windows como a última personalização.
- A instalação de todo o software está completa.
Adicione a
/mode:vm
opção ao comando padrãoSysprep
usado pelo VM Image Builder. Para obter mais informações, consulte Substituição de comandos mais adiante neste artigo.
Solucionar problemas de VMs criadas sem êxito a partir do Construtor de Imagens de VM
Por padrão, o VM Image Builder 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 a configura para reutilização na criação de várias VMs. Como parte do processo, você pode passar as configurações da VM, como nome do host e nome de usuário.
No Windows, o VM Image Builder 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 VM Image Builder, você pode personalizar o comando Sysprep
. O VM Image Builder é uma ferramenta de automação de imagem responsável por executar comandos Sysprep
com sucesso. Mas talvez precise de comandos diferentes Sysprep
para tornar a sua imagem reutilizável.
No Linux, o VM Image Builder executa um comando genérico waagent -deprovision+user
. Para obter mais informações, consulte a documentação do Agente Linux do Microsoft Azure.
Se estiver a migrar uma personalização existente e utilizar vários comandos Sysprep
ou waagent
, pode experimentar os comandos genéricos do VM Image Builder. Se a criação da VM falhar, utilize os seus 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 a partir da imagem. Por exemplo, a criação da VM não é concluída ou atinge o tempo limite. Nesse caso, execute uma das seguintes tarefas:
- Consulte a documentação do Windows Server
Sysprep
. - Levante uma solicitação de suporte com a equipe de suporte ao cliente do Windows Server
Sysprep
. Essa equipe pode ajudar a solucionar seu problema e aconselhá-lo sobre o comando corretoSysprep
.
Localizações de comandos e nomes de ficheiros
No Windows:
c:\DeprovisioningScript.ps1
Em 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
Sobrepondo os comandos
Para substituir os comandos, use os provisionadores PowerShell ou shell script para criar os arquivos de comando com o nome exato do arquivo. Coloque-os nos diretórios listados anteriormente. O VM Image Builder lê esses comandos e grava a saída no customization.log
arquivo.
Obtenha suporte
Se você usou as orientações neste artigo e ainda está tendo problemas, você 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 com a equipe de suporte do Construtor de Imagens de VM do Azure.
Product Family: Azure
Product: Virtual Machine Running (Window\Linux)
Support Topic: Azure Features
Support Subtopic: Azure Image Builder