Resolução de Problemas do Azure VM Image Builder
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.
Pré-requisitos
Ao criar uma compilação, faça o seguinte:
- O serviço VM Image Builder se comunica com a VM de compilação usando WinRM ou Secure Shell (SSH). Não desative essas configurações como parte da compilação.
- O Construtor de Imagens de VM cria recursos no grupo de recursos de preparo como parte das compilações. A lista exata de recursos depende da configuração de rede especificada no modelo de imagem. Certifique-se de verificar se a Política do Azure não impede que o Construtor de Imagens de VM crie ou use os recursos necessários.
- Crie um IT_ grupo de recursos.
- Crie uma conta de armazenamento sem firewall.
- Implante instâncias de contêiner do Azure.
- Implante recursos da Rede Virtual do Azure (e sub-redes neles).
- Implante recursos do Ponto de Extremidade Privado do Azure.
- Implante arquivos do Azure.
- Verifique se a Política do Azure não instala recursos não intencionais na VM de compilação, como as Extensões do Azure.
- Verifique se o VM Image Builder tem as permissões corretas para ler/gravar imagens e se conectar à conta de armazenamento. Para obter mais informações, consulte a documentação de permissões para a CLI do Azure ou o Azure PowerShell.
- O VM Image Builder falhará na compilação se os scripts ou comandos embutidos falharem com erros (códigos de saída diferentes de zero). Certifique-se de ter testado os scripts personalizados e verificado se eles são executados sem erros (código de saída 0) ou exigem a entrada do usuário. Para obter mais informações, consulte 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 compilação de imagem pode implantar até um recurso temporário de Instância 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.
As falhas do Construtor de Imagens de VM podem ocorrer em duas áreas:
- Durante o envio do modelo de imagem
- Durante a construção da imagem
Nota
As imagens protegidas pelo CIS (Linux ou Windows) no Azure marketplace, gerenciadas pelo CIS, podem causar falhas de compilação com o serviço Azure Image Builder devido às suas configurações. Por exemplo:
- As imagens do Windows protegidas pelo CIS podem interromper a conectividade do WinRM, um pré-requisito para a compilação do AIB.
- As imagens do CIS Linux podem falhar devido a problemas de
chmod +x
permissão.
Solucionar erros de envio de modelo de imagem
Os erros de envio de modelo de imagem são retornados apenas no envio. Não há um 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 revisando ProvisioningState
e ProvisioningErrorMessage
/provisioningError
.
az image builder show --name $imageTemplateName --resource-group $imageResourceGroup
Get-AzImageBuilderTemplate -ImageTemplateName <imageTemplateName> -ResourceGroupName <imageTemplateResourceGroup> | Select-Object ProvisioningState, ProvisioningErrorMessage
Nota
Para o PowerShell, você precisará instalar os módulos PowerShell do VM Image Builder.
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, depois de mudar para a versão mais recente da API, que você não reverta para uma versão anterior, porque você terá que alterar sua automação novamente para produzir o esquema de erro anterior. Não prevemos que alteraremos o esquema de erro 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 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."
}
}
As seções a seguir apresentam diretrizes de resolução de problemas para erros comuns de envio de modelo de imagem.
A atualização ou atualização 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 você enviar um modelo de configuração de imagem e o envio falhar, um artefato de modelo com falha ainda existirá. Exclua o modelo com falha.
Reatribuindo MSI 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.
Motivo
Há casos em que as Identidades de Serviço Gerenciado (MSI) 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 o MSI é excluído antes que o modelo de imagem seja excluído (cenário de grupo de recursos de preparação)
- As Identidades de Serviço Gerenciado (MSI) criadas 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. Certifique-se de atualizar a CLI do Azure para a versão 2.45.0 ou posterior.
Remover a identidade gerenciada do modelo de construtor de imagens de destino
az image builder identity remove -g <template resource group> -n <template name> --user-assigned <identity resource id>
Reatribuir identidade ao modelo de 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 terminou 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."
Motivo
Na maioria dos casos, o erro de falha de implantação de recursos ocorre devido a permissões ausentes. 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 o grupo de recursos da Galeria de Computação do Azure (anteriormente Galeria de Imagens Compartilhadas).
- A imagem de distribuição ou o recurso da Galeria de Computação do Azure.
- A conta de armazenamento, contêiner ou blob que o
File
personalizador está acessando.
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 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
Motivo
Permissões em falta.
Solução
Dependendo do cenário, o Construtor de Imagens de VM 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 da Galeria de Computação do Azure.
- A conta de armazenamento, contêiner ou blob que o
File
personalizador está acessando.
Para obter mais informações sobre como configurar permissões, consulte 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 compilação 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."
Motivo
O Construtor de Imagens de VM não consegue localizar a imagem de origem.
Solução
Verifique se a imagem de origem está correta e existe no local do Construtor de Imagens da VM.
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 do arquivo ou o local está incorreto ou o local não está acessível.
Solução
Certifique-se de que o arquivo está acessível. Verifique se o nome e o local estão corretos.
Erro de autorização ao criar disco
A compilação do Azure Image Builder 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.'
Motivo
Este erro é causado ao tentar especificar um grupo de recursos pré-existente e uma rede virtual para o serviço Azure Image Builder 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 Azure Image Builder 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 Azure Image Builder 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 esta solução no portal, siga as instruções nesta documentação: Atribuir funções do Azure usando o portal do Azure - Azure RBAC.
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 "Azure Virtual Machine Image Builder"
Em seguida, prossiga para a Etapa 6: Atribuir função para atribuir a função.
Solucionar problemas de falhas de compilação
Para falhas de compilação de imagem, obtenha o erro do lastrunstatus
e, em seguida, revise os detalhes no arquivo customization.log .
az image builder show --name $imageTemplateName --resource-group $imageResourceGroup
Get-AzImageBuilderTemplate -ImageTemplateName <imageTemplateName> -ResourceGroupName <imageTemplateResourceGroup> | Select-Object LastRunStatus, LastRunStatusMessage
Log de personalização
Acessando logs em tempo real durante a criação de imagens
Para monitorar efetivamente o progresso da criação da imagem, você pode acessar os logs em tempo real gerados pelo Azure Image Builder (AIB) nas Instâncias de Contêiner do Azure (ACI). Esses logs fornecem informações em tempo real sobre o processo de compilação, ajudando você a identificar quaisquer problemas ou confirmar que a compilação está prosseguindo conforme o esperado. Siga as etapas abaixo para localizar e visualizar esses logs dinâmicos.
- Iniciar a construção da imagem: Inicie o processo de construção da imagem.
- Navegue até Grupos de Recursos: Vá para o portal do Azure e selecione "Grupos de Recursos". Filtre pela assinatura em que a compilação da imagem foi iniciada.
- Selecione o Grupo de Recursos: localize e selecione o grupo de recursos de preparo associado à compilação da imagem. Este é o grupo de recursos que contém os recursos de compilação do serviço AIB. Para obter mais informações sobre o grupo de recursos de preparo, consulte Propriedades: stagingResourceGroup.
- Localize o contêiner de compilação: 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.
- Configurações de Contêiner de Acesso: No painel esquerdo, em "Configurações", selecione "Contêineres".
- Ver Logs: Vá para a guia "Logs" para visualizar os logs ao vivo durante o processo de construção da imagem.
Se você não vir nenhum log, tente atualizar o contêiner depois de alguns minutos.
Baixando o log de personalização e/ou validação após a compilaçã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 obter mais informações sobre o grupo de recursos de preparo, consulte Propriedades: stagingResourceGroup.
Nota
Ao acessar o arquivo ouvalidation.log
, é importante observar que, se a compilação da imagem tiver sido executada customization.log
várias vezes, haverá várias pastas dentro do packerlogs
contêiner. Essas pastas são organizadas em ordem desde a compilação mais antiga até a mais recente.
Siga as etapas abaixo para localizar e baixar o customization.log
arquivo ou validation.log
:
- Selecione Conta de Armazenamento: no portal do Azure, navegue até a Conta de Armazenamento relevante filtrando as contas de armazenamento dentro do grupo de recursos de preparo criado pelo serviço Construtor de Imagens de VM. Para obter mais informações sobre o grupo de recursos de preparo, consulte Propriedades: stagingResourceGroup.
- Acessar armazenamento de dados: na conta de armazenamento, vá para Armazenamento de dados.
- Abrir Contêiner: Selecione a opção Contêiner e, em seguida, escolha o
packerlogs
contêiner. - Escolha a pasta correta: dentro do
packerlogs
contêiner, você verá várias pastas se a compilação da imagem tiver sido executada várias vezes. Essas pastas são organizadas desde a compilação mais antiga até a mais recente. Selecione a pasta correspondente à compilação em que está interessado. - Baixe o arquivo de log: dentro da pasta selecionada, selecione o
customization.log
arquivo e/ouvalidation.log
clique em Download para baixar seu conteúdo.
Noções básicas sobre o log de personalização
O log é detalhado. Ele abrange a compilação da imagem, incluindo quaisquer problemas com a distribuição da imagem, como a replicação da Galeria de Computação do Azure. Esses erros 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 ARM no estágio de grupo de recursos de preparação IT_. Este estágio inclui vários POSTs 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 ... ..
Status do estágio de 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 ao estágio de VM de compilação.
No Windows, o VM Image Builder 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 VM Image Builder 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!
Execute o estágio de personalizações . Quando as personalizações são executadas, você pode identificá-las revisando o arquivo customization.log . Pesquisa 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 VM Image Builder adiciona um personalizador oculto. Esta etapa de desprovisionamento é responsável por preparar a VM para desprovisionamento. No Windows, ele é executado
Sysprep
(usando c:\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."}
Fase de limpeza . Após a conclusão da compilação, os recursos do Construtor de Imagens da VM são excluídos.
PACKER ERR ==> azure-arm: Deleting individual resources ... ... PACKER ERR 2020/02/04 02:04:23 packer: 2020/02/04 02:04:23 Azure request method="DELETE" request="https://management.azure.com/subscriptions/<subId>/resourceGroups/IT_aibDevOpsImg_t_vvvvvvv_yyyyyy-de5f-4f7c-92f2-xxxxxxxx/providers/Microsoft.Network/networkInterfaces/pkrnijamvpo08eo?[REDACTED]" body="" ... PACKER ERR ==> azure-arm: The resource group was not created by Packer, not deleting ...
Dicas para solucionar problemas de script ou personalização em linha
- Teste o código antes de fornecê-lo ao VM Image Builder.
- Certifique-se de que a Política e o Firewall do Azure permitam a conectividade com recursos remotos.
- Envie comentários para o console usando
Write-Host
ouecho
. Isso permite que você pesquise o arquivo customization.log .
Solucionar erros comuns de compilação
A implantação do modelo falhou devido a 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 acima é resultado do uso de um Cofre de Chaves do Azure com acesso público desabilitado. No momento, o Azure Image Builder não oferece suporte a essa configuração.
Solução
O Cofre da Chave do Azure deve ser criado com o acesso público habilitado.
Falha no comando Packer build
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
Falha de personalização.
Solução
Revise o log para localizar falhas do personalizador. Pesquisa 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 excedido
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 de compilação. Este erro é visto no 'lastrunstatus'.
Solução
Revise o arquivo customization.log . Identifique o último personalizador a ser executado. Procure (telemetria), começando pela parte inferior do log.
Verifique as personalizações de script. As personalizações podem não estar suprimindo a interação do usuário para comandos, como
quiet
opções. Por exemplo,apt-get install -y
resulta na execução do script aguardando a interação do usuário.Se você estiver usando o personalizador para baixar artefatos com mais de 20 MB, consulte a
File
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 é 4 horas.
Se você tiver ações que consomem muitos recursos, como baixar gigabytes (GB) de arquivos, considere o tamanho da VM de compilação subjacente. O serviço usa uma Standard_D1_v2 VM. A VM tem 1 vCPU e 3,5 GB de memória. Se você estiver baixando 50 GB, provavelmente esgotará os recursos da VM e causará falhas de comunicação entre o VM Image Builder e a VM de compilação. Tente novamente a compilação com uma VM de memória maior definindo o VM_size.
Longo tempo de download de arquivos
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
File
O personalizador está baixando um arquivo grande.
Solução
File
personalizador é adequado apenas para downloads de arquivos pequenos (menos de 20 MB). Para downloads de arquivos maiores, use um script ou comando embutido. Por exemplo, no Linux você pode usar wget
ou curl
. No Windows, você pode usar Invoke-WebRequest
o .
O construtor falha continuamente ao executar o 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.
Motivo
A etapa de atualização do Windows declara prematuramente em imagens baseadas no Windows Server 2016.
Solução
Aumente restartTimeout
de 15 minutos para 30 minutos.
Erro em espera na 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
O Construtor de Imagens de VM atingiu o tempo limite aguardando que a imagem fosse adicionada e replicada na Galeria de Computação do Azure. Se a imagem estiver sendo injetada na galeria, você pode presumir que a compilação da imagem foi bem-sucedida. No entanto, o processo geral falhou porque o Construtor de Imagens de VM estava aguardando na 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
.
Eventos de informações de recursos baixos 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
Exaustão de recursos. Esse problema é comumente visto com o Windows Update em execução com o tamanho de VM de compilação padrão D1_V2.
Solução
Aumente o tamanho da VM de compilação.
A construção terminou, 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 com segurança.
Ignorando a criação de imagens
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 com segurança.
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.\""
},
Motivo
Permissões em falta.
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, consulte 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
Calendário
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
A causa pode ser um problema de tempo devido ao tamanho D1_V2 VM. Se as personalizações forem limitadas e executadas em menos de três segundos, Sysprep
os comandos serão executados pelo VM Image Builder para desprovisionamento. Quando o Construtor de Imagens de VM é desprovisionado, o Sysprep
comando verifica se há WindowsAzureGuestAgent, 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.
Provedor de Instâncias de Contêiner do Azure não registrado
Erro
Azure Container Instances provider not registered for your subscription.
Motivo
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
Quota de Instâncias de Contêiner do Azure excedida
Erro
Azure Container Instances quota exceeded"
Motivo
Sua assinatura não tem cota suficiente de Instâncias de Contêiner do Azure (ACI) para o Azure Image Builder criar uma imagem com êxito.
Solução
Você pode fazer o seguinte para disponibilizar a cota ACI para o Azure Image Builder:
- Pesquise outro uso de Instâncias de Contêiner do Azure em sua assinatura e remova quaisquer instâncias desnecessárias para disponibilizar a cota para o Azure Image Builder.
- O Azure Image Builder implanta a ACI apenas temporariamente enquanto uma compilação está ocorrendo. Essas instâncias são excluídas assim que a compilação é concluída. Se muitas compilações de imagem simultâneas estiverem ocorrendo em sua assinatura, você pode considerar atrasar algumas das compilações de imagem. Isso reduz o uso simultâneo de ACI em sua assinatura. Se seus modelos de imagem estiverem configurados para compilações automáticas de imagem usando gatilhos, essas compilações com falha serão automaticamente repetidas pelo Azure Image Builder.
- Se os limites atuais de ACI para sua assinatura forem muito baixos para suportar seus cenários de criação de imagem, você poderá solicitar um aumento na sua cota de ACI.
Nota
Os recursos ACI são necessários para compilações de imagens isoladas.
Demasiadas Instâncias de Contentor do Azure implementadas num período de tempo
Erro
"Muitas instâncias de contêiner do Azure implantadas em um período de tempo"
Motivo
Sua assinatura não tem cota suficiente de Instâncias de Contêiner do Azure (ACI) para o Azure Image Builder criar imagens simultaneamente com êxito.
Solução
Pode fazer o seguinte:
- Tente novamente suas compilações com falha de uma maneira menos simultânea.
- Se os limites atuais de ACI para sua assinatura forem muito baixos para suportar seus cenários de criação de imagem, você poderá solicitar um aumento na sua cota de ACI.
Falha de compilação de imagem isolada
Erro
As compilações do Azure Image Builder estão falhando devido à Compilação de Imagem Isolada.
Motivo
As compilações do Azure Image Builder podem falhar por motivos listados em outro lugar neste documento. 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 obter mais informações, consulte Compilações de imagens isoladas.
Solução
Se você determinar que uma compilação está falhando devido a compilações de imagem isoladas, você pode fazer o seguinte:
- Certifique-se de que não há nenhuma Política do Azure bloqueando a implantação de recursos mencionados na seção Pré-requisitos, especificamente Instâncias de Contêiner do Azure.
- Certifique-se de que a sua subscrição tem quota suficiente de Instâncias de Contentor do Azure para suportar todas as suas compilações de imagem simultâneas. Para obter mais informações, consulte Cota de instâncias de contêiner do Azure excedida.
O Azure Image Builder está atualmente no processo de implantação de Compilações de Imagem 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 utilizar compilações de imagem isoladas durante compilações diferentes. Você pode fazer o seguinte para executar temporariamente sua compilação sem compilações de imagem isoladas.
- Tente novamente sua compilação. Como os Modelos de Imagem não estão vinculados ao recurso Compilações de Imagem Isolada, tentar novamente uma compilação tem uma alta probabilidade de ser executado novamente sem Compilações de Imagem Isoladas.
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 das Compilações de Imagem Isoladas. Para obter mais informações, veja Criar um pedido de suporte do Azure.
Nota
As compilações de imagens isoladas serão eventualmente habilitadas em todas as regiões e modelos. Portanto, as mitigações acima devem ser consideradas temporárias e a causa subjacente das falhas de compilação deve ser abordada.
A compilação é cancelada 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
Motivo
O Construtor de Imagens de VM usa a porta 22 (Linux) ou 5986 (Windows) para se conectar à VM de compilação. Isso ocorre quando o serviço é desconectado da VM de compilação durante uma compilação de imagem. Os motivos para a desconexão podem variar, mas ativar ou configurar um firewall no script pode bloquear as portas mencionadas anteriormente.
Solução
Analise seus scripts para verificar se há alterações ou habilitações de firewall ou alterações em SSH ou WinRM e certifique-se de que quaisquer alterações permitam conectividade constante entre o serviço e a VM de compilação nas portas mencionadas anteriormente. Para obter mais informações, consulte Opções de rede do VM Image Builder.
Erros JWT no log no início da compilação
Erro
No início do processo de compilação, a compilação falha e o log indica um erro 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 buildTimeoutInMinutes
valor no modelo é definido como de 1 a 5 minutos.
Solução
Conforme descrito em Criar um modelo do Construtor de Imagens de VM, o tempo limite deve ser definido como 0 para usar o padrão ou definido como mais de 5 minutos para substituir o padrão. Altere o tempo limite no seu modelo para 0 para usar o padrão ou para um mínimo de 6 minutos.
Erros de exclusão de recursos
Erro
Os recursos intermediários são limpos no final da compilação e o log de personalização pode 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"...
Motivo
Essas mensagens de log de erros são, na maioria das vezes, inofensivas, porque as exclusões de recursos são repetidas várias vezes e, normalmente, acabam sendo bem-sucedidas. Você pode verificar isso continuando a seguir os logs de exclusão até observar uma mensagem de sucesso. 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 compilação, onde 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 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=[]
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 recursos abaixo, um por um, na ordem específica:
- Conexão de ponto de extremidade privado. Você pode encontrar isso no recurso de serviço de link privado indo para a guia "conexões de ponto de extremidade privado" na página de 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 assistência adicional, você pode entrar em contato com o suporte do Azure para resolver o erro de exclusão bloqueado.
Distribuir destino 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.
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, ou seja, novos destinos (se houver), destinos existentes sem alteração e destinos atualizados. Se você quiser remover um destino de distribuição existente, exclua e recrie o modelo de imagem, pois a exclusão de um destino de distribuição não é suportada atualmente por meio da API de Patch.
Campos obrigatórios em falta
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, forneça todos os campos obrigatórios em um destino de distribuição, mesmo que não haja alterações.
Tarefas de DevOps
Solucionar problemas da 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 a compilação com falha do pipeline>e, em seguida, faça uma busca detalhada na tarefa 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, em seguida, procure o grupo de recursos digitando IT_*.
- Selecione o nome >da conta de armazenamento, blobs,>contêineres>, logs.
Solucionar problemas de compilações bem-sucedidas
Ocasionalmente, você pode precisar investigar compilações bem-sucedidas e revisar seus logs. Como mencionado anteriormente, se a compilação da imagem for bem-sucedida, o grupo de recursos de preparo que contém os logs será excluído como parte da limpeza. Para evitar uma limpeza automática, no entanto, você pode introduzir um sleep
comando after the inline e, em seguida, exibir os logs à medida que a compilação é pausada. Para tal, faça o seguinte:
- Atualize o comando inline adicionando Write-Host / Echo "Sleep". Isto dá-lhe tempo para pesquisar no registo.
- Adicione um
sleep
valor de pelo menos 10 minutos usando um comando Start-Sleep ouSleep
Linux. - Use esse método para identificar o local do log e, em seguida, continue baixando ou verificando o log até que ele chegue ao
sleep
.
Operação 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 a compilação não foi cancelada por um usuário, ela foi cancelada pelo Agente de Usuário do Azure DevOps. Muito provavelmente, o tempo limite de 1 hora ocorreu devido aos recursos do Azure DevOps. Se você estiver usando um projeto privado e agente, você terá 60 minutos de tempo de construção. Se a compilação exceder o tempo limite, o DevOps cancelará a tarefa em execução.
Para obter mais informações sobre os recursos e limitações do Azure DevOps, consulte Agentes hospedados pela Microsoft.
Solução
Você pode hospedar seus próprios agentes de DevOps ou procurar 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.
Logon lento do Windows
Erro
Este erro pode ocorrer quando cria uma imagem do Windows 10 utilizando o Construtor de Imagens de VM, cria uma 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 compilação da imagem, verifique se:
- Não há reinicializações pendentes necessárias adicionando 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 padrão
Sysprep
usado pelo VM Image Builder. Para obter mais informações, vá para a seção "Substituir os comandos" em "VMs criadas a partir de imagens do Construtor de Imagens de VM não são criadas com êxito".
As VMs criadas a partir de imagens do Construtor de Imagens de VM não são criadas com êxito
Por padrão, o VM Image Builder executa o código de desprovisionamento no final de cada fase de personalização da imagem para generalizar a imagem. Generalizar uma imagem é configurá-la para reutilizar 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 VM Image Builder é executado Sysprep
e, no Linux, o VM Image Builder é executado waagent -deprovision
.
No Windows, o VM Image Builder usa 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 Sysprep
comando. Observe que o VM Image Builder é uma ferramenta de automação de imagem responsável pela execução Sysprep
bem-sucedida do comando. Mas você pode precisar de comandos diferentes Sysprep
para tornar sua imagem reutilizável. No Linux, o VM Image Builder usa um comando genérico waagent -deprovision+user
. Para obter mais informações, consulte a documentação do Agente Linux do Microsoft Azure.
Se você estiver migrando uma personalização existente e estiver usando vários Sysprep
waagent
comandos, poderá experimentar os comandos genéricos do VM Image Builder. Se a criação da VM falhar, use os comandos ou waagent
anterioresSysprep
.
Suponhamos 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 a partir da imagem. Por exemplo, a criação da VM não é concluída ou atinge o tempo limite. Nesse caso, siga um destes procedimentos:
- Consulte a documentação do Windows Server Sysprep.
- Levante uma solicitação de suporte com a equipe de Suporte ao Atendimento ao Cliente do Windows Server Sysprep. Eles podem ajudar a solucionar o problema e aconselhá-lo sobre o comando correto
Sysprep
.
Locais de comando e nomes de arquivo
No Windows:
c:\DeprovisioningScript.ps1
No Linux:
/tmp/DeprovisioningScript.sh
O Sysprep
comando: 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 -deprovision
comando: Linux
sudo /usr/sbin/waagent -force -deprovision+user && export HISTSIZE=0 && sync
Substituir 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 e colocá-los nos diretórios listados anteriormente. O VM Image Builder lê esses comandos e grava a saída no arquivo customization.log .
Obter suporte
Se você se referiu às orientações e ainda está tendo problemas, você pode abrir um caso de suporte. Certifique-se de selecionar o produto correto e o tópico de suporte. Isso garantirá que você esteja conectado à equipe de suporte do Construtor de Imagens de VM do Azure.
Selecionando o produto da caixa:
Product Family: Azure
Product: Virtual Machine Running (Window\Linux)
Support Topic: Azure Features
Support Subtopic: Azure Image Builder
Próximos passos
Para obter mais informações, consulte Visão geral do VM Image Builder.