Solución de problemas de Azure VM Image Builder

Se aplica a: ✔️ máquinas virtuales Linux ✔️ conjuntos de escalado flexibles

Use este artículo para solucionar y resolver problemas comunes que podrían surgir al usar Azure VM Image Builder.

Prerrequisitos

Al crear una compilación, haga lo siguiente:

  • El servicio de VM Image Builder se comunica con la máquina virtual de compilación mediante WinRM o Secure Shell (SSH). No deshabilite esta configuración como parte de la compilación.
  • VM Image Builder crea recursos en el grupo de recursos de almacenamiento provisional como parte de las compilaciones. Asegúrese de comprobar que Azure Policy no impide que VM Image Builder cree o use los recursos necesarios.
  • Compruebe que Azure Policy no instala características no deseadas en la máquina virtual de compilación, como extensiones de Azure.
  • Asegúrese de que VM Image Builder tenga los permisos correctos para leer y escribir imágenes y para conectarse a la cuenta de almacenamiento. Para obtener más información, consulte la documentación de permisos para la CLI de Azure o Azure PowerShell.
  • VM Image Builder no realiza la compilación si los scripts o los comandos insertados producen errores (códigos de salida distintos de cero). Asegúrese de haber probado los scripts personalizados y comprobado que se ejecutan sin errores (código de salida 0) o que requieren la entrada del usuario. Para obtener más información, consulte Creación de una imagen de Azure Virtual Desktop mediante VM Image Builder y PowerShell.
  • Asegúrese de que la suscripción tenga suficiente cuota de Azure Container Instances.
    • La compilación de cada imagen puede implementar hasta un recurso temporal de instancia de contenedor de Azure (de cuatro núcleos estándar) en el grupo de recursos de almacenamiento provisional. Estos recursos son necesarios para compilaciones de imágenes aisladas.

Los errores de VM Image Builder pueden producirse en dos áreas:

  • Durante el envío de la plantilla de imagen
  • Durante la creación de imágenes

Nota:

Las imágenes protegidas por CIS (Linux o Windows) en Azure Marketplace, administradas por CIS, pueden provocar errores de compilación con el servicio Azure Image Builder debido a sus configuraciones. Por ejemplo:

  • Las imágenes de Windows protegidas por CIS podrían interrumpir la conectividad de WinRM, un requisito previo para la compilación de AIB.
  • Las imágenes de CIS Linux pueden producir errores debido a chmod +x problemas de permisos.

Solucionar errores de envío de la plantilla de imagen

Los errores de envío de la plantilla de imagen solo se devuelven en el envío. No hay ningún registro de errores para los errores de envío de la plantilla de imagen. Si se produjo un error durante el envío, puede devolver el error comprobando el estado de la plantilla, mediante la revisión específica de ProvisioningState y ProvisioningErrorMessage/provisioningError.

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

Nota

En el caso de PowerShell, debe instalar los módulos de PowerShell para VM Image Builder.

Importante

La versión 2021-10-01 de la API presenta un cambio en el esquema de error que formará parte de cada versión futura de la API. Si tiene automatizaciones de Azure VM Image Builder, tenga en cuenta el nuevo error que se genera al cambiar a la versión 2021-10-01 de la API o posterior. Se recomienda, después de cambiar a la versión más reciente de la API, que no revierta a una versión anterior, ya que tendrá que cambiar la automatización de nuevo para generar el esquema de error anterior. No se prevé volver a cambiar el esquema de errores en futuras versiones.

Generación del error en la versión 2020-02-14 y versiones 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."
}

Generación del error en la versión 2021-10-01 y versiones posteriores

{
  "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."
  }
}

En las secciones siguientes se presenta la guía de resolución de problemas para errores comunes de envío de plantillas de imagen.

Actualmente no se admite la actualización de las plantillas de imagen

Error

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

Causa

La plantilla ya existe.

Solución

Si envía una plantilla de configuración de imagen y se produce un error en el envío, significa que todavía existe un artefacto de plantilla con errores. Elimine la plantilla con errores.

Reasignación de MSI en plantillas de imagen

Error

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

Causa

Hay casos en los que no se pueden usar las identidades de servicio administradas (MSI) asignadas a la plantilla de imagen:

Solución

Use la CLI de Azure para restablecer la identidad en la plantilla de imagen. Asegúrese de actualizar la CLI de Azure a la versión 2.45.0 o posterior.

Eliminar la identidad administrada de la plantilla del generador de imágenes de destino

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

Reasignar la identidad a la plantilla del generador de imágenes de destino

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

La operación de recursos finalizó con un estado de aprovisionamiento de terminal de "Error"

Error

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

Causa

En la mayoría de los casos, el error de implementación de recursos se produce debido a la falta de permisos. Este error también puede deberse a un conflicto con el grupo de recursos de almacenamiento provisional.

Solución

En función del escenario, VM Image Builder puede necesitar permisos para:

  • La imagen de origen o grupo de recursos de Azure Compute Gallery (anteriormente, Shared Image Gallery).
  • La imagen de distribución o el recurso de Azure Compute Gallery.
  • La cuenta de almacenamiento, el contenedor o el blob a los que accede el personalizador File.

Además, asegúrese de que el nombre del grupo de recursos de almacenamiento provisional se especifica de forma única para cada plantilla de imagen.

Para más información sobre la configuración de permisos, consulte Configuración de los permisos de VM Image Builder mediante la CLI de Azure o Configuración de los permisos de VM Image Builder mediante PowerShell.

Error al obtener una imagen administrada

Error

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

Causa

Faltan permisos.

Solución

En función del escenario, VM Image Builder puede necesitar permisos para:

  • La imagen de origen o grupo de recursos de Azure Compute Gallery.
  • La imagen de distribución o el recurso de Azure Compute Gallery.
  • La cuenta de almacenamiento, el contenedor o el blob a los que accede el personalizador File.

Para más información sobre la configuración de permisos, consulte Configuración de los permisos de VM Image Builder mediante la CLI de Azure o Configuración de los permisos de VM Image Builder mediante PowerShell.

El paso de compilación de la versión de la imagen

Error

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

Causa

VM Image Builder no encuentra la imagen de origen.

Solución

Asegúrese de que la imagen de origen es correcta y existe en la ubicación del servicio VM Image Builder.

Descarga de un archivo externo en un archivo local

Error

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

Causa

El nombre o la ubicación del archivo no son correctos o no se puede acceder a la ubicación.

Solución

Asegúrese de que se puede acceder al archivo. Compruebe que el nombre y la ubicación son correctos.

Error de autorización al crear disco

Se produce un error en la compilación de Azure Image Builder con un error de autorización similar al siguiente:

Error

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

Causa

Este error se produce al intentar especificar un grupo de recursos y una red virtual preexistentes en el servicio Azure Image Builder con una imagen de origen de Windows.

Solución

Tendrá que asignar el rol de colaborador al grupo de recursos para la entidad de servicio correspondiente a la aplicación de primera entidad de Azure Image Builder mediante el comando de la CLI o las instrucciones del portal siguientes.

En primer lugar, compruebe que la entidad de servicio está asociada a la aplicación de primera entidad de Azure Image Builder mediante el siguiente comando de la CLI:

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

A continuación, para implementar esta solución mediante la CLI, use el siguiente comando:

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

Para implementar esta solución en el portal, siga las instrucciones de esta documentación: Asignación de roles de Azure mediante Azure Portal: Control de acceso basado en roles de Azure.

Para el Paso 1: identificar el ámbito necesario: el ámbito necesario es el grupo de recursos.

Para el Paso 3: seleccionar el rol apropiado: el rol es Colaborador.

Para el Paso 4: elegir quién necesita acceso: seleccione el miembro "Azure Virtual Machine Image Builder"

A continuación, continúe con el Paso 6: Asignar un rol para asignar el rol.

Solución de errores de compilación

En el caso de los errores de compilación de la imagen, obtendrá el error de lastrunstatus y, después, revisar los detalles en el archivo customization.log.

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

Registro de personalización

Cuando se ejecuta la compilación de la imagen, los registros se crean y almacenan en una cuenta de almacenamiento. VM Image Builder crea la cuenta de almacenamiento en el grupo de recursos temporal cuando se crea un artefacto de plantilla de imagen.

El nombre de la cuenta de almacenamiento usa el patrón IT_<ImageResourceGroupName><TemplateName><GUID> (por ejemplo, IT_aibmdi_helloImageTemplateLinux01).

Para ver el archivo customization.log en el grupo de recursos, seleccione Cuenta de almacenamiento>Blobs>packerlogs, seleccione el directorio y, después, el archivo customization.log.

Descripción del registro de personalización

El registro es detallado. Trata la compilación de la imagen, incluidos los problemas con la distribución de la imagen, como la replicación de Azure Compute Gallery. Estos errores aparecen en el mensaje de error del estado de la plantilla de imagen.

El archivo customization.log incluye las siguientes fases:

  1. Fase Implementación de la máquina virtual de compilación y las dependencias mediante plantillas de ARM en el grupo de recursos de almacenamiento provisional IT_. Esta fase incluye varias PUBLICACIONES en el proveedor de recursos de VM Image Builder:

    Azure request method="POST" request="https://management.azure.com/subscriptions/<subID>/resourceGroups/IT_aibImageRG200_window2019VnetTemplate01_dec33089-1cc3-cccc-cccc-ccccccc/providers/Microsoft.Storage/storageAccounts
    ..
    PACKER OUT ==> azure-arm: Deploying deployment template ...
    ..
    
  2. Fase Estado de las implementaciones. Esta fase incluye el estado de cada implementación de recursos:

    PACKER ERR 2020/04/30 23:28:50 packer: 2020/04/30 23:28:50 Azure request method="GET" request="https://management.azure.com/subscriptions/<subID>/resourcegroups/IT_aibImageRG200_window2019VnetTemplate01_dec33089-1cc3-4505-ae28-6661e43fac48/providers/Microsoft.Resources/deployments/pkrdp51lc0339jg/operationStatuses/08586133176207523519?[REDACTED]" body=""
    
  3. Conexión a las máquinas virtuales de compilación.

    En Windows, VM Image Builder se conecta mediante 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.
    

    En Linux, VM Image Builder se conecta mediante SSH:

    PACKER OUT ==> azure-arm: Waiting for SSH to become available...
    PACKER ERR 2019/12/10 17:20:51 packer: 2020/04/10 17:20:51 [INFO] Waiting for SSH, up to timeout: 20m0s
    PACKER OUT ==> azure-arm: Connected to SSH!
    
  4. Fase Ejecución de personalizaciones. Cuando se ejecutan las personalizaciones, puede identificarlas revisando el archivo customization.log. Busque (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 hasfinished
    
  5. Fase Desaprovisionamiento. VM Image Builder agrega un personalizador oculto. Este paso de desaprovisionamiento es responsable de preparar la máquina virtual para el desaprovisionamiento. En Windows, ejecuta Sysprep (mediante c:\DeprovisioningScript.ps1). En Linux, ejecuta waagent-deprovision (mediante /tmp/DeprovisioningScript.sh).

    Por ejemplo:

    PACKER ERR 2020/03/04 23:05:04 [INFO] (telemetry) Starting provisioner powershell
    PACKER ERR 2020/03/04 23:05:04 packer: 2020/03/04 23:05:04 Found command: if( TEST-PATH c:\DeprovisioningScript.ps1 ){cat c:\DeprovisioningScript.ps1} else {echo "Deprovisioning script [c:\DeprovisioningScript.ps1] could not be found. Image build may fail or the VM created from the Image may not boot. Please make sure the deprovisioning script is not accidentally deleted by a Customizer in the Template."}
    
  6. Fase Limpieza. Una vez finalizada la compilación, se eliminan los recursos de VM Image Builder.

    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 ...
    

Sugerencias para la solución de problemas de la personalización de script o comandos insertados

  • Pruebe el código antes de proporcionarlo a VM Image Builder.
  • Asegúrese de que Azure Policy y los firewalls permiten la conectividad a los recursos remotos.
  • Enviar comentarios a la consola mediante Write-Host o echo. Al hacerlo, puede buscar en el archivo customization.log.

Solución de errores de compilación comunes

Se produjo un error en la implementación de la plantilla debido a la infracción de la directiva.

Error

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

Causa

El error de infracción de directiva anterior es el resultado de usar una instancia de Azure Key Vault con acceso público deshabilitado. En este momento, Azure Image Builder no admite esta configuración.

Solución

El Azure Key Vault debe crearse con el acceso público habilitado.

Error de comando de compilación de Packer

Error

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

Causa

Error de personalización

Solución

Revise el registro para buscar los errores del personalizador. Busque (telemetry) .

Por ejemplo:

(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

Tiempo de espera superado

Error

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

Causa

La compilación superó el tiempo de espera de compilación. Este error se ve en "lastrunstatus".

Solución

  1. Revise el archivo customization.log. Identifique el último personalizador que se va a ejecutar. Busque (telemetry) a partir de la parte inferior del registro.

  2. Compruebe las personalizaciones del script. Puede que las personalizaciones no supriman la interacción del usuario con los comandos, como las opciones quiet. Por ejemplo, apt-get install -y da como resultado la ejecución del script en espera de la interacción del usuario.

  3. Si usa el personalizador de File para descargar artefactos de más de 20 MB, consulte la sección de soluciones alternativas.

  4. Revise los errores y las dependencias del script que pueden hacer que el script espere.

  5. Si espera que las personalizaciones necesiten más tiempo, aumente el valor de buildTimeoutInMinutes. El valor predeterminado es 4 horas.

  6. Si tiene acciones que consumen muchos recursos, como la descarga de gigabytes (GB) de archivos, tenga en cuenta el tamaño de la máquina virtual de compilación subyacente. El servicio usa una máquina virtual Standard_D1_v2. La máquina virtual tiene 1 vCPU y 3,5 GB de memoria. Si va a descargar 50 GB, es probable que se agoten los recursos de la máquina virtual y que se produzcan errores de comunicación entre VM Image Builder y la máquina virtual de compilación. Vuelva a intentar la compilación con una máquina virtual con más memoria, estableciendo el valor VM_size.

Tiempo de descarga largo de archivos

Error

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

Causa

El personalizador de File está descargando un archivo grande.

Solución

El personalizador de File solo es adecuado para descargas de archivos pequeños (menos de 20 MB). En el caso de descargas de archivos más grandes, use un script o un comando insertado. Por ejemplo, en Linux, puede usar wget o curl. En Windows, puede usar Invoke-WebRequest.

El generador no puede ejecutar Windows-Restart con el código de error 1190

Error

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

Causa

El paso de actualización de Windows declara prematuramente en imágenes basadas en Windows Server 2016.

Solución

Aumente restartTimeout de 15 minutos a 30 minutos.

Error

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

Causa

VM Builder agotó el tiempo de espera para que la imagen se agregara y replicara en Azure Compute Gallery. Si la imagen se inserta en la galería, se puede suponer que la imagen se ha creado correctamente. Sin embargo, se produjo un error en el proceso general porque VM Image Builder estaba esperando en Azure Compute Gallery a que se completara la replicación. Aunque se ha producido un error en la compilación, la replicación continúa. Puede obtener las propiedades de la versión de la imagen comprobando la distribución runOutput.

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

Solución

Aumente el valor de buildTimeoutInMinutes.

Pocos eventos de información de recursos de Windows

Error

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

Causa

Agotamiento de recursos. Este problema suele producirse con Windows Update en ejecución mediante el uso del tamaño de la máquina virtual de compilación predeterminado D1_V2.

Solución

Aumente el tamaño de la máquina virtual de compilación.

Las compilación finalizó pero no se crearon artefactos

Advertencia

[<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.

Solución

La anterior advertencia se puede omitir sin ningún riesgo.

Omitir la creación de imágenes

Advertencia

[<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

Solución

La anterior advertencia se puede omitir sin ningún riesgo.

Recurso no encontrado

Error

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

Causa

Faltan permisos.

Solución

Vuelva a comprobar para asegurarse de que VM Image Builder tiene todos los permisos que requiere.

Para más información sobre la configuración de permisos, consulte Configuración de los permisos de VM Image Builder mediante la CLI de Azure o Configuración de los permisos de VM Image Builder mediante PowerShell.

Intervalo de Sysprep

Error

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

Causa

La causa puede ser un problema de intervalos debido al tamaño de la máquina virtual D1_V2. Si las personalizaciones están limitadas y se ejecutan en menos de tres segundos, VM Image Builder ejecuta los comandos Sysprep para el desaprovisionamiento. Cuando VM Image Builder se desaprovisiona, el comando Sysprep comprueba WindowsAzureGuestAgent, que puede que no esté completamente instalado, lo que puede provocar un problema en los intervalos.

Solución

Para evitar el problema de intervalos, puede aumentar el tamaño de la máquina virtual o agregar una personalización de suspensión de PowerShell de 60 segundos.

Proveedor de Azure Container Instances no registrado

Error

Azure Container Instances provider not registered for your subscription.

Causa

La suscripción de plantilla no tiene registrado el proveedor de Azure Container Instances.

Solución

Registre el proveedor de Azure Container Instances para la suscripción de plantilla y agregue los comandos de la CLI de Azure o PowerShell:

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

Cuota excedida de Azure Container Instances

Error

Azure Container Instances quota exceeded"

Causa

La suscripción no tiene suficiente cuota de Azure Container Instances (ACI) para que Azure Image Builder compile correctamente una imagen.

Solución

Para que la cuota de ACI esté disponible para Azure Image Builder, puede hacer lo siguiente:

  • Busque otro uso de Azure Container Instances en su suscripción y quite las instancias innecesarias para que haya cuota disponible para Azure Image Builder.
  • Azure Image Builder implementa ACI solo temporalmente mientras se realiza una compilación. Estas instancias se eliminan una vez completada la compilación. Si hay demasiadas compilaciones de imágenes simultáneas en la suscripción, puede considerar la posibilidad de retrasar algunas de las compilaciones de imágenes. De esta forma, se reduce el uso simultáneo de ACI en la suscripción. Si las plantillas de imagen están configuradas para compilaciones automáticas de imágenes mediante desencadenadores, Azure Image Builder volverá a intentar automáticamente estas compilaciones con errores.
  • Si los límites actuales de ACI para la suscripción son demasiado bajos para admitir los escenarios de compilación de imágenes, puede solicitar un aumento de la cuota de ACI.

Nota:

Los recursos de ACI son necesarios para compilaciones de imágenes aisladas.

Demasiadas instancias de contenedor de Azure implementadas en un período de tiempo

Error

"Se ha implementado demasiadas instancias de contenedor de Azure en un período de tiempo"

Causa

La suscripción no tiene suficiente cuota de Azure Container Instances (ACI) para que Azure Image Builder compile correctamente las imágenes.

Solución

Puede hacer lo siguiente:

  • Vuelva a intentar las compilaciones con errores de forma menos simultánea.
  • Si los límites actuales de ACI para la suscripción son demasiado bajos para admitir los escenarios de compilación de imágenes, puede solicitar un aumento de la cuota de ACI.

Error de compilación de imágenes aisladas

Error

Las compilaciones de Azure Image Builder no se realizan correctamente debido a la compilación de imágenes aisladas.

Causa

Las compilaciones de Azure Image Builder pueden producir errores por los motivos enumerados en otra parte de este documento. Sin embargo, hay una pequeña posibilidad de que se produzca un error en una compilación debido a compilaciones de imágenes aisladas dependiendo de su escenario, cuotas de suscripción o algún error de servicio imprevisto. Para más información, consulte Compilaciones de imágenes aisladas.

Solución

Si determina que una compilación no se realiza correctamente debido a compilaciones de imágenes aisladas, puede hacer lo siguiente:

  • Asegúrese de que no hay ninguna directiva de Azure que bloquee la implementación de los recursos mencionados en la sección Requisitos previos, específicamente Azure Container Instances, Azure Virtual Networks y puntos de conexión privados de Azure.
  • Asegúrese de que la suscripción tenga suficiente cuota de Azure Container Instances para admitir todas las compilaciones de imágenes simultáneas. Para más información, consulte Se ha excedido la cuota de Azure Container Instances.

Azure Image Builder se encuentra actualmente en proceso de implementar compilaciones de imágenes aisladas. Las plantillas de imagen específicas no están vinculadas a compilaciones de imágenes aisladas y la misma plantilla de imagen podría o no usar compilaciones de imágenes aisladas durante diferentes compilaciones. Para ejecutar temporalmente la compilación sin compilaciones de imágenes aisladas, puede hacer lo siguiente:

  • Vuelva a intentar la compilación. Dado que las plantillas de imagen no están vinculadas a la característica Compilaciones de imágenes aisladas, volver a intentar una compilación tiene una alta probabilidad de volver a ejecutarse sin compilaciones de imágenes aisladas.

Si ninguna de estas soluciones mitiga los errores de las compilaciones de imágenes, puede ponerse en contacto con el soporte técnico de Azure para que excluyan temporalmente su suscripción de las compilaciones de imágenes aisladas. Para más información, consulte Creación de una solicitud de soporte técnico de Azure.

Nota:

Las compilaciones de imágenes aisladas se habilitarán finalmente en todas las regiones y plantillas. Por lo tanto, las mitigaciones anteriores deben considerarse temporales y se debe solucionar la causa subyacente de los errores de compilación.

La compilación se cancela después de cancelar el contexto

Error

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

Causa

VM Image Builder usa el puerto 22 (Linux) o 5986 (Windows) para conectarse a la máquina virtual de compilación. Esto ocurre cuando el servicio está desconectado de la máquina virtual de compilación durante una compilación de imagen. Los motivos de la desconexión pueden variar, pero habilitar o configurar un firewall en el script puede bloquear los puertos mencionados anteriormente.

Solución

Revise los scripts para los cambios y la habilitación del firewall, o los cambios en SSH o WinRM, y asegúrese de que los cambios permitan la conectividad constante entre el servicio y la máquina virtual de compilación en los puertos anteriores. Para más información, consulte Opciones de red de VM Image Builder.

Errores JWT en el registro al principio de la compilación

Error

Al principio del proceso de compilación, se produce un error en la compilación y el registro indica un error 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:

Causa

El valor buildTimeoutInMinutes de la plantilla se establece en entre 1 y 5 minutos.

Solución

Como se describe en Creación de una plantilla de VM Image Builder, el tiempo de espera debe establecerse en 0 para usar el valor predeterminado o en un valor superior a 5 minutos para invalidar el valor predeterminado. Cambie el tiempo de espera de la plantilla a 0 para usar el valor predeterminado o a un mínimo de 6 minutos.

Errores de eliminación de recursos

Error

Los recursos intermedios se limpian hacia el final de la compilación y el registro de personalización puede mostrar varios errores de eliminación de recursos:

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

Causa

Estos mensajes de registro de errores son principalmente inofensivos porque las eliminaciones de recursos se reintentaron varias veces y, en general, se completaron correctamente. Para comprobarlo, siga los registros de eliminación hasta que observe un mensaje de confirmación. Como alternativa, puede inspeccionar el grupo de recursos de almacenamiento provisional para confirmar si el recurso se ha eliminado.

La realización de estas observaciones es especialmente importante en los errores de compilación, donde estos mensajes de error pueden llevar a concluir que son el motivo de los errores, incluso cuando los errores reales podrían estar en otro lugar.

Error

Cuando las imágenes se bloquean en la eliminación de plantillas, el registro de personalización puede mostrar el siguiente error:

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

Causa

El error se produce porque la interfaz de red está actualmente en uso con un punto de conexión privado.

Solución

Para resolver el problema, elimine los siguientes recursos uno por uno en el orden específico:

  1. Conexión de punto de conexión privado. Para encontrar esto en el recurso de servicio de vínculo privado, vaya a la pestaña "Conexiones de punto de conexión privado" de la página de recursos del servicio de vínculo privado.
  2. Servicio de vínculo privado.
  3. Interfaz de red y equilibrador de carga.
  4. Grupo de recursos.
  5. Plantilla de imagen.

Para obtener ayuda adicional, puede ponerse en contacto con Soporte técnico de Azure para resolver el error de eliminación bloqueada.

No se encontró el destino de distribución en la solicitud de actualización

Error

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

Causa

Este error se produce cuando no se encuentra un destino de distribución existente en el cuerpo de la solicitud de revisión.

Solución

La matriz de distribución debe contener todos los destinos de distribución, nuevos destinos (si los hay), destinos existentes sin cambios ni destinos actualizados. Si desea quitar un destino de distribución existente, elimine y vuelva a crear la plantilla de imagen, ya que actualmente no se admite la eliminación de un destino de distribución a través de la API de revisión.

Faltan campos obligatorios

Error

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

Causa

Este error se produce cuando falta un campo obligatorio de un destino de distribución.

Solución

Al crear una solicitud, proporcione todos los campos necesarios en un destino de distribución aunque no haya ningún cambio.

Tareas de DevOps

Solución de problemas de la tarea

La tarea produce un error solo si se produce un error durante la personalización. Cuando esto sucede, la tarea notifica el error y deja el grupo de recursos de almacenamiento provisional, con los registros, para que pueda identificar el problema.

Para buscar el registro, debe conocer el nombre de la plantilla. Vaya a Canalización>Compilación con errores y,después, profundice en la tarea DevOps de VM Image Builder.

Verá el registro y un nombre de plantilla:

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
  1. Vaya a Azure Portal, busque el nombre de la plantilla en el grupo de recursos y busque el grupo de recursos escribiendo IT_*.
  2. Seleccione el nombre de la cuenta de almacenamiento >blobs>contenedores>registros.

Solución de problemas de compilaciones correctas

En ocasiones, es posible que necesite investigar compilaciones correctas y revisar sus registros. Como se mencionó anteriormente, si la creación de la imagen se realiza correctamente, el grupo de recursos de almacenamiento provisional que contiene los registros se eliminará como parte de la limpieza. Sin embargo, para evitar una limpieza automática, puede introducir un valor sleep después del comando en línea y, después, ver los registros a medida que se pausa la compilación. Para ello, haga lo siguiente:

  1. Actualice el comando insertado agregando Write-Host / Echo “Sleep”. Esto le proporciona tiempo para buscar en el registro.
  2. Agregue un valor sleep de al menos 10 minutos mediante un comando Start-Sleep o Sleep de Linux.
  3. Use el método para identificar la ubicación del registro y, a continuación, siga descargando o comprobando el registro hasta que llegue el momento de sleep.

Operación cancelada

Error

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

Causa

Si un usuario no canceló la compilación, entonces lo hizo el agente de usuario de Azure DevOps. Lo más probable es que se haya agotado el tiempo de espera de una hora debido a las funcionalidades de Azure DevOps. Si usa un proyecto y un agente privados, dispondrá de 60 minutos de tiempo de compilación. Si la compilación supera el tiempo de espera, DevOps cancela la tarea en ejecución.

Para más información sobre las funcionalidades y limitaciones de Azure DevOps, vea Agentes hospedados por Microsoft.

Solución

Puede hospedar sus propios agentes de DevOps o tratar de reducir el tiempo de la compilación. Por ejemplo, si va a distribuir a Azure Compute Gallery, puede replicarlos en una región o replicarlos de forma asincrónica.

Inicio de sesión lento de Windows

Error

Este error puede producirse al crear una imagen de Windows 10 mediante VM Image Builder, crear una máquina virtual a partir de la imagen y, después, usar el Protocolo de escritorio remoto (RDP). Espera varios minutos en la primera pantalla de inicio de sesión y, después, una pantalla azul muestra el siguiente mensaje:

Please wait for the Windows Modules Installer

Solución

  1. En la compilación de la imagen, compruebe que:

    • No se requieren reinicios pendientes agregando un personalizador de reinicio de Windows como la última personalización.
    • La instalación de todo el software se completó.
  2. Agregue la opción /mode:vm al valor predeterminado Sysprep que usa VM Image Builder. Para obtener más información, vaya a la sección "Invalidar los comandos" en "Las máquinas virtuales creadas a partir de imágenes de VM Image Builder no se crearon correctamente".

Las máquinas virtuales creadas a partir de imágenes de VM Image Builder no se crearon correctamente

De forma predeterminada, VM Image Builder ejecuta código de desaprovisionamiento al final de cada fase de personalización de la imagen con el fin de generalizar la imagen. Generalizar una imagen es configurarla para reutilizarla para crear varias máquinas virtuales. Como parte del proceso, puede pasar la configuración de la máquina virtual, como el nombre de host, el nombre de usuario, etc. En Windows, VM Image Builder ejecuta Sysprep y en Linux, VM Image Builder ejecuta waagent -deprovision.

En Windows, VM Image Builder usa un comando Sysprep genérico. Sin embargo, este comando puede no ser conveniente para todas las generalizaciones de Windows correctas. Con VM Image Builder, puede personalizar el comando Sysprep. Tenga en cuenta que VM Image Builder es una herramienta de automatización de imágenes responsable de ejecutar el comando Sysprep correctamente. Sin embargo, puede que necesite comandos Sysprep diferentes para que la imagen se pueda reutilizar. En Linux, VM Image Builder usa un comando waagent -deprovision+user genérico. Para más información, vea la documentación del agente Linux de Microsoft Azure.

Si va a migrar una personalización existente y usa varios comandos Sysprep o waagent, puede probar los comandos genéricos de VM Image Builder. Si se produce un error en la creación de la máquina virtual, use los comandos Sysprep o waagent anteriores.

Supongamos que ha usado VM Image Builder correctamente para crear una imagen personalizada de Windows, pero no ha podido crear correctamente una máquina virtual a partir de la imagen. Por ejemplo, la creación de la máquina virtual no finaliza o se agota el tiempo de espera. En este evento, realice una de las siguientes acciones:

  • Revise la documentación de Sysprep de Windows Server.
  • Genere una solicitud de soporte técnico con el equipo de soporte técnico del Servicio de atención al cliente de Windows Server Sysprep. Pueden ayudar a solucionar el problema y avisarle sobre el comando Sysprep correcto.

Nombres de archivo y ubicaciones de comandos

En Windows:

c:\DeprovisioningScript.ps1

En Linux:

/tmp/DeprovisioningScript.sh

El comando Sysprep: Windows

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

El comando -deprovision: Linux

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

Reemplazo de los comandos

Para reemplazar los comandos, use los aprovisionadores de scripts de PowerShell o Shell para crear los archivos de comandos con el nombre de archivo exacto y colóquelos en los directorios indicados anteriormente. VM Image Builder lee estos comandos, y escribe la salida en el archivo customization.log.

Obtención de soporte técnico

Si ha hecho referencia a las instrucciones y sigue teniendo problemas, puede abrir un caso de soporte técnico. Asegúrese de seleccionar el producto y el tema de soporte técnico correctos. Al hacerlo, garantizará que está conectado con el equipo de soporte técnico de Azure VM Image Builder.

Selección del producto para el caso:

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

Pasos siguientes

Para más información, consulte Introducción a VM Image Builder.