Compartir a través de


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 problemas comunes que podría surgir al usar Azure VM Image Builder.

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

Prerrequisitos

Estos requisitos previos son para crear una compilación:

  • El servicio Vm Image Builder se comunica con la máquina virtual (VM) de compilación mediante administración remota de Windows (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. La lista exacta de recursos depende de la configuración de red que especifica la plantilla de imagen. Asegúrese de comprobar que Azure Policy no impide que VM Image Builder cree o use los recursos necesarios.

  • Asegúrese de que Azure Policy no instala características no deseadas en la máquina virtual de compilación u otros recursos de almacenamiento provisional, como extensiones de Azure o modificaciones de etiquetas.

  • 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 probar los scripts personalizados y comprobar que se ejecutan sin errores (código 0de salida) o 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 tiene una cuota suficiente para Azure Container Instances.

    La compilación de cada imagen puede implementar hasta un recurso temporal de Azure Container Instances (de cuatro núcleos estándar) en el grupo de recursos de almacenamiento provisional. Estos recursos son necesarios para compilaciones de imágenes aisladas.

Nota:

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

  • Las imágenes reforzadas de CIS para Windows podrían interrumpir la conectividad de WinRM, un requisito previo para las construcciones de VM Image Builder.
  • Las imágenes reforzadas de CIS para Linux pueden producir errores debido a problemas de permisos de chmod +x.

Solucionar errores de envío de la plantilla de imagen

Los errores de envío de plantillas de imagen solo se devuelven en el envío. No existe ningún registro de errores para los errores de envío de plantillas de imagen. Si se produce un error durante el envío, puede devolver el error comprobando el estado de la plantilla. En concreto, revise ProvisioningState y ProvisioningErrorMessage/provisioningError.

Este es el comando de la CLI de Azure:

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

Este es el comando de Azure PowerShell. Para usar Azure PowerShell, debe instalar los módulos de PowerShell de Vm Image Builder.

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

Esta es la salida de error de la versión 2020-02-14 y 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."
}

Esta es la salida de error de la versión 2021-10-01 y 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."
  }
}

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 de API más reciente, que no revierta a una versión anterior. Si decide revertir, tendrá que cambiar la automatización nuevamente para generar el esquema de error anterior. No esperamos que el esquema de error cambie de nuevo en futuras versiones.

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.

No se puede usar la identidad administrada asignada en una plantilla 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 puede usar una identidad administrada creada asignada a la plantilla de imagen.

Una posible causa es que la plantilla vm Image Builder usa un grupo de recursos de almacenamiento provisional proporcionado por el cliente y la identidad administrada se elimina antes de eliminar la plantilla de imagen. (Se trata de un escenario de grupo de recursos de almacenamiento provisional ).

Solución

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

Confirme la identidad administrada desde la plantilla de Vm Image Builder de destino:

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

Quite la identidad administrada de la plantilla de Vm Image Builder de destino:

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

Asigne una nueva identidad a la plantilla de Vm Image Builder de destino:

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

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.

La identidad administrada asignada no está autorizada para acceder a un recurso

Error

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

Causa

La identidad administrada creada asignada a la plantilla de imagen no tiene todos los permisos para acceder al recurso compartido en el mensaje de error.

Solución

Confirme la identidad administrada desde la plantilla de Vm Image Builder de destino:

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

Revise las asignaciones de roles para la identidad:

az role assignment list --assignee <identity_client_id_or_principal_id>

Asigne el rol necesario. Si es necesario, cree su rol con los permisos necesarios.

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.

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 ocurre debido a permisos faltantes. Un conflicto con el grupo de recursos de almacenamiento provisional también podría provocar este error.

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

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

Error al descargar 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.

Algunos repositorios de archivos pueden usar conjuntos de cifrado no admitidos y provocar errores de descarga con VM Image Builder. Almacene archivos y scripts en una cuenta de Almacenamiento de Azure para ayudar a garantizar la seguridad de los conjuntos de cifrado y la accesibilidad de VM Image Builder. Para más información sobre cómo almacenar los archivos en cuentas de almacenamiento de Azure, consulte Introducción a la cuenta de almacenamiento.

Se produce un error de autorización con la creación de un disco

La compilación del Creador de Imágenes de Máquina Virtual falla con un error de autorización que se asemeja al ejemplo 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 existente y una red virtual en el servicio Vm Image Builder con una imagen de origen de Windows.

Solución

Debe asignar el rol Colaborador al grupo de recursos para el principal de servicio que corresponde a la aplicación de primera parte de VM Image Builder. Use los siguientes comandos de la CLI de Azure o las instrucciones de Azure Portal.

En primer lugar, compruebe que el principal del servicio está asociado a la aplicación de primera parte de VM Image Builder mediante el siguiente comando de la CLI de Azure.

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

A continuación, para implementar esta solución mediante la CLI de Azure, 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 Asignación de roles de Azure mediante Azure Portal:

Solución de errores de compilación

En el caso de los errores de compilación de imágenes, obtenga el error de lastRunStatus y, a continuación, revise 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

Acceso a registros en directo durante la compilación de imágenes

Para supervisar eficazmente el progreso de la compilación de la imagen, puede acceder a los registros en directo que genera Vm Image Builder en Azure Container Instances. Estos registros proporcionan información en tiempo real sobre el proceso de compilación. Ayudan a identificar cualquier problema o confirmar que la compilación avanza según lo previsto.

Para buscar y ver los registros en directo:

  1. Inicie el proceso de compilación de imágenes.

  2. Vaya a Azure Portal y seleccione Grupos de recursos. Filtre por la suscripción donde iniciaste la creación de la imagen.

  3. Busque y seleccione el grupo de recursos de almacenamiento provisional asociado a la compilación de imágenes. Este grupo de recursos contiene los recursos de compilación para el servicio Vm Image Builder. Para obtener más información sobre el grupo de recursos de almacenamiento provisional, consulte Propiedades: stagingResourceGroup.

  4. En este grupo de recursos, busque el recurso denominado vmimagebuilder-build-container-**********. Si no está visible, espere unos minutos y actualice la página.

  5. En el panel izquierdo, en Configuración, seleccione Contenedores.

  6. Vaya a la pestaña Registros para ver los registros en directo durante el proceso de compilación de imágenes.

Si no ve ningún registro, pruebe a actualizar el contenedor después de unos minutos.

Descarga del registro de personalización o validación después de la compilación de la imagen

Una vez finalizada la compilación de imágenes, los registros de personalización y validación se almacenan en un contenedor dentro de la cuenta de almacenamiento del grupo de recursos de almacenamiento provisional que creó el servicio Vm Image Builder. Para obtener más información sobre el grupo de recursos de almacenamiento provisional, consulte Propiedades: stagingResourceGroup.

Para buscar y descargar el customization.log archivo o validation.log :

  1. En Azure Portal, vaya a la cuenta de almacenamiento pertinente filtrando las cuentas de almacenamiento dentro del grupo de recursos de almacenamiento provisional que creó el servicio Vm Image Builder.

  2. En la cuenta de almacenamiento, vaya a Almacenamiento de datos.

  3. Seleccione la opción Contenedor y, a continuación, elija el packerlogs contenedor.

  4. Dentro del packerlogs contenedor, aparecen varias carpetas si la compilación de imágenes se ejecutó varias veces. Estas carpetas se organizan desde la compilación más antigua hasta la más reciente. Seleccione la carpeta que corresponde a la compilación que le interesa.

  5. Dentro de la carpeta seleccionada, seleccione el customization.log archivo o validation.log y, a continuación, seleccione Descargar para descargar su contenido.

Fases 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 problemas se muestran en el mensaje de error del estado de la plantilla de imagen.

El archivo customization.log incluye las siguientes fases:

  1. Implemente la máquina virtual de compilación y las dependencias mediante plantillas de Azure Resource Manager en el IT_ grupo de recursos de almacenamiento provisional. Esta fase incluye varias POST solicitudes al 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. Obtenga el 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. Conéctese a la máquina virtual 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. Ejecutar personalizaciones. Cuando se ejecutan personalizaciones, puede identificarlas revisando el customization.log archivo. 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 has finished
    
  5. Desaprovisionar. VM Image Builder agrega un personalizador oculto. Este paso es responsable de preparar la máquina virtual para el desaprovisionamiento. En Windows, se ejecuta Sysprep (mediante c:\DeprovisioningScript.ps1). En Linux, se 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. Limpiar. 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 ...
    

Solución de problemas de personalización en línea o script

Las siguientes sugerencias pueden ayudarle a solucionar problemas de personalización en línea o de scripts:

  • Pruebe el código antes de proporcionarlo a VM Image Builder.
  • Asegúrese de que Azure Policy y Azure Firewall permiten la conectividad a recursos remotos.
  • Envíe comentarios de salida a la consola mediante Write-Host o echo. Si lo hace, podrá buscar en el archivo customization.log.

Solución de errores de compilación comunes

Error en la implementación de plantillas debido a una infracción de 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 del uso de un almacén de claves de Azure con acceso público deshabilitado. En este momento, VM Image Builder no admite esta configuración.

Solución

Debe crear la bóveda de claves con el acceso público activado.

Error en el 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

El error de un comando de compilación de packer es un 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

Se produce un error en la implementación debido al tiempo de espera

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. Este error aparece en lastRunStatus.

Solución

  1. Revise el archivo customization.log. Identifique el último personalizador que se va a ejecutar. Busque (telemetry), comenzando desde 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 File personalizador para descargar artefactos superiores a 20 MB, consulte la sección Soluciones alternativas.

  4. Revise los errores y las dependencias del script que podrían 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 descargar gigabytes de archivos, considere 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 una 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 de mayor memoria estableciendo VM_size.

El tiempo de descarga de archivos es largo

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 File personalizador está descargando un archivo grande.

Solución

El File personalizador 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.

Se produce un error en el reinicio de Windows continuamente 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 Windows Update se declara prematuramente en imágenes basadas en Windows Server 2016.

Solución

Aumente restartTimeout de 15 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 esperaba que Azure Compute Gallery completara la replicación.

Aunque se produjo 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.

Los eventos informativos muestran escasez de recursos en 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

La causa es el agotamiento de recursos. Este problema suele ocurrir cuando Windows Update se ejecuta con el tamaño de máquina virtual de compilación predeterminado, D1_V2.

Solución

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

Compilación finalizada, 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

Puede omitir de forma segura la advertencia anterior.

Se omitió 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

Puede omitir de forma segura la advertencia anterior.

No se encuentra el recurso

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 que VM Image Builder tiene todos los permisos que necesita.

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.

Hay un problema de sincronización 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

El D1_V2 tamaño de máquina virtual puede ser el motivo del problema de tiempo. Si las personalizaciones están limitadas y se ejecutan en menos de tres segundos, VM Image Builder ejecuta comandos Sysprep para desaprovisionar. Cuando VM Image Builder desaprovisiona, el comando Sysprep verifica WindowsAzureGuestAgent, que podría no estar completamente instalado y podría causar el problema de sincronización.

Solución

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

El proveedor de Azure Container Instances no está 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 uno de los siguientes comandos:

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

La suscripción superó la cuota de Azure Container Instances

Error

Azure Container Instances quota exceeded

Causa

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

Solución

Puede realizar las siguientes acciones para que la cuota de Azure Container Instances esté disponible para VM Image Builder:

  • Busque otro uso de Azure Container Instances en su suscripción. Quite las instancias innecesarias para que la cuota esté disponible para VM Image Builder.

  • VM Image Builder implementa Azure Container Instances solo temporalmente durante una compilación. Estas instancias se eliminan una vez finalizada la compilación.

    Si hay demasiadas compilaciones de imágenes simultáneas en ejecución en la suscripción, puede considerar la posibilidad de retrasar algunas de las compilaciones de imágenes. Este retraso reduce el uso simultáneo de Azure Container Instances en la suscripción.

    Si las plantillas de imagen están configuradas para compilaciones automáticas de imágenes a través de desencadenadores, VM Image Builder reintenta automáticamente dichas compilaciones con errores.

  • Si los límites actuales de Azure Container Instances para la suscripción son demasiado bajos para admitir los escenarios de creación de imágenes, puede solicitar un aumento en la cuota de Azure Container Instances.

Nota:

Los recursos de Azure Container Instances son necesarios para compilaciones de imágenes aisladas.

Hay demasiados recursos de Azure Container Instances implementados en un período de tiempo

Error

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

Causa

La suscripción no tiene suficiente cuota de Azure Container Instances para que VM Image Builder compile correctamente imágenes simultáneamente.

Solución

Puede probar estas soluciones:

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

La característica Construcciones de imágenes aislada provoca un error

Error

Las compilaciones del Constructor de Imágenes VM fallan debido a compilaciones de imagen aisladas.

Causa

Las compilaciones de VM Image Builder pueden producir errores por motivos enumerados en otra parte de este artículo. 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 falla debido a compilaciones de imágenes aisladas, asegúrese de lo siguiente:

Vm Image Builder se encuentra actualmente en proceso de implementación de 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 distintas compilaciones.

Para ejecutar temporalmente la compilación sin compilaciones de imágenes aisladas, 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 las compilaciones de imágenes con errores, puede ponerse en contacto con el soporte técnico de Azure para optar temporalmente por no participar en compilaciones de imágenes aisladas. Para más información, consulte Creación de una solicitud de soporte técnico de Azure.

Nota:

Si la característica Compilaciones de imágenes aisladas se habilita finalmente en todas las regiones y plantillas, las mitigaciones anteriores solo serán temporales. Es mejor solucionar la causa subyacente de los errores de compilación.

La compilación se cancela después de la cancelación del 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. Este problema se produce 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 ver los cambios o habilitación del firewall o los cambios en SSH o WinRM. Asegúrese de que los cambios permiten la conectividad constante entre el servicio y la máquina virtual de compilación en los puertos mencionados anteriormente. Para más información, consulte Opciones de red de VM Image Builder.

Los errores de JWT aparecen 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 Image Builder de máquina virtual, el tiempo de espera debe establecerse en 0 minutos para usar el valor predeterminado o establecerlo en más de 5 minutos para invalidar el valor predeterminado. Cambie el tiempo de espera de la plantilla a 0 minutos para usar el valor predeterminado o cámbielo a un mínimo de 6 minutos.

Aparecen 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, ya que las eliminaciones de recursos se reintentan varias veces. Normalmente, finalmente tienen éxito. Para comprobar este comportamiento, 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 se eliminó el recurso.

Realizar estas observaciones es especialmente importante en los errores de construcción. 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 podría 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 este orden específico:

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

Para obtener más ayuda, puede ponerse en contacto con el soporte técnico de Azure para resolver el error de eliminación bloqueada.

El destino de distribución no se encuentra 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 parche.

Solución

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

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 en un destino de distribución.

Solución

Al crear una solicitud, asegúrese de proporcionar todos los campos necesarios en un destino de distribución, incluso si no hay ningún cambio.

Solución de problemas de Azure DevOps

Solo se produce un error en una tarea de Azure DevOps si se produce un error durante la personalización. Cuando se produce este error, 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:

  1. Busque el nombre de la plantilla. Vaya a Pipeline>Compilación con errores, y luego profundice en la tarea de Azure DevOps en VM Image Builder. Anote el template name valor.

    start reading task parameters...
    found build at:  /home/vsts/work/r1/a/_ImageBuilding/webapp
    end reading parameters
    getting storage account details for aibstordot1556933914
    created archive /home/vsts/work/_temp/temp_web_package_21475337782320203.zip
    Source for image:  { type: 'SharedImageVersion',
      imageVersionId: '/subscriptions/<subscriptionID>/resourceGroups/<rgName>/providers/Microsoft.Compute/galleries/<galleryName>/images/<imageDefName>/versions/<imgVersionNumber>' }
    template name:  t_1556938436xxx
    
  2. Vaya a Azure Portal, busque el nombre de la plantilla en el grupo de recursos y, a continuación, busque el grupo de recursos escribiendo IT_.

  3. Seleccione el nombre de la cuenta de almacenamiento y, a continuación, seleccione blobs>, contenedores> y registros.

En ocasiones, es posible que necesite investigar compilaciones correctas y revisar sus registros. Como se mencionó anteriormente, si la compilación de la imagen se realiza correctamente, el grupo de recursos de almacenamiento provisional que contiene los registros se elimina como parte de la limpieza. Para evitar una limpieza automática, puede introducir sleep después del comando en línea y luego ver los registros mientras la compilación está pausada.

  1. Actualice el comando en línea agregando Write-Host / Echo "Sleep". Esta adición le proporciona tiempo para buscar en el registro.
  2. Agregue un valor de sleep de al menos 10 minutos mediante un comando de Linux Start-Sleep o Sleep.
  3. Use este método para identificar la ubicación del registro y, a continuación, siga descargando o comprobando el registro hasta que llegue al 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, el agente de usuario de Azure DevOps lo canceló. 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, Azure 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 Azure DevOps o intentar reducir el tiempo de compilación. Por ejemplo, si va a distribuir contenidos en la Galería de Cómputo de Azure, puede replicar el contenido en una región o de forma asincrónica.

El inicio de sesión de Windows es lento

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 creación de la imagen, asegúrese de 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 /mode:vm opción al comando predeterminado Sysprep que usa VM Image Builder. Para obtener más información, vea Invalidar los comandos más adelante en este artículo.

Solución de problemas de máquinas virtuales creadas sin éxito a partir de VM Image Builder

De forma predeterminada, VM Image Builder ejecuta código de desaprovisionamiento al final de cada fase de personalización de imagen para generalizar la imagen. Generalizar una imagen lo configura para reutilizarlo en la creación de varias máquinas virtuales. Como parte del proceso, puede pasar la configuración de la máquina virtual, como el nombre de host y el nombre de usuario.

En Windows, VM Image Builder ejecuta un comando genérico Sysprep . Sin embargo, este comando podría no ser adecuado para todas las generalizaciones exitosas de Windows. Con VM Image Builder, puede personalizar el comando Sysprep. VM Image Builder es una herramienta de automatización de imágenes responsable de ejecutar Sysprep comandos correctamente. Sin embargo, puede que necesite comandos Sysprep diferentes para que la imagen se pueda reutilizar.

En Linux, VM Image Builder ejecuta un comando genérico waagent -deprovision+user . Para más información, consulte 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, no se puede finalizar la creación de la máquina virtual o se agota el tiempo de espera. En este evento, realice cualquiera de las siguientes tareas:

  • Revise la documentación de Windows Server Sysprep .
  • Genere una solicitud de soporte técnico con el equipo de soporte técnico de Windows Server Sysprep . Ese equipo puede ayudar a solucionar el problema y aconsejarle sobre el comando correcto Sysprep .

Ubicaciones de comandos y nombres de archivo

En Windows:

c:\DeprovisioningScript.ps1

En Linux:

/tmp/DeprovisioningScript.sh

Comando Sysprep para Windows

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

Comando Desaprovisionar para Linux

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

Invalidación de los comandos

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

Obtención de soporte técnico

Si ha usado las instrucciones de este artículo y sigue teniendo problemas, puede abrir un caso de soporte técnico.

Use el código siguiente para seleccionar el producto y el tema de soporte técnico correctos. Al hacerlo, se garantiza que está conectado con el equipo de soporte técnico de Azure VM Image Builder.

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