Errores de aprovisionamiento de extensión de vm en conjuntos de escalado de máquinas virtuales

En este artículo se proporcionan instrucciones sobre cómo resolver errores VMExtensionProvisioningError, VMExtensionHandlerNonTransientError o VMExtensionProvisioningTimeout que aparecen al intentar implementar, actualizar, volver a crear una imagen, iniciar o escalar un conjunto de escalado de máquinas virtuales.

Nota

En el contexto de los conjuntos de escalado de máquinas virtuales, la "VM" de estos mensajes de errores hace referencia a una instancia dentro de un conjunto de escalado de máquinas virtuales específico.

Síntomas

Verá errores VMExtensionProvisioningError, VMExtensionHandlerNonTransientError o VMExtensionProvisioningTimeout, como en los ejemplos siguientes:

'statusMessage': '{\\'status\\':\\'Failed\\',\\'error\\':{\\'code\\':\\'ResourceOperationFailure\\',\\'message\\':\\'The resource operation completed with terminal provisioning state 'Failed'.\\',\\'details\\':[{\\'code\\':\\'VMExtensionProvisioningError\\',\\'message\\':\\'Multiple VM extensions failed to be provisioned on the VM. Please see the VM extension instance view for other failures.

{'status': 'Failed','error': {'code':'VMExtensionHandlerNonTransientError','message': 'The handler for VM extension type 'Microsoft.EnterpriseCloud.Monitoring.OmsAgentForLinux' has reported terminal failure for VM extension 'OmsAgentForLinux' with error message: '[ExtensionOperationError] Non-zero exit code: 10

'statusMessage': '{\\'status\\':\\'Failed\\',\\'error\\':{\\'code\\':\\'ResourceOperationFailure\\',\\'message\\':\\'The resource operation completed with terminal provisioning state 'Failed'.\\',\\'details\\':[{\\'code\\':\\'VMExtensionProvisioningTimeout\\',\\'message\\':\\'Provisioning of VM extension configure-settings has timed out. Extension provisioning has taken too long to complete.

Causa

Una extensión de máquina virtual está en suspensión o ha fallado durante el estado de aprovisionamiento.

Obtener más información sobre el error de extensión

Para empezar a resolver este error, primero debe determinar qué extensiones e instancias se ven afectadas. Para ello, ejecute el siguiente comando de la interfaz de línea de comandos de Azure (CLI de Azure):

az vmss list-instances --resource-group MyResourceGroup --name MyVmss --query "[].{instanceId:instanceId, extension:resources[].id, extProvisioningState:resources[].provisioningState}"

El resultado de este comando mostrará los estados de aprovisionamiento de las extensiones en cada instancia. En el ejemplo siguiente se muestra cómo se agrupa esta información de extensión por identificador de instancia.

Captura de pantalla de salida con los IDs de instancia resaltados.

Dentro de cada sección dedicada a una instancia determinada, la lista "extProvisioningState" en la parte superior muestra los estados de aprovisionamiento de las extensiones instaladas en esa instancia. A esta lista le sigue la lista "extensión", que muestra los nombres de las extensiones en el mismo orden correspondiente.

Por ejemplo, en el siguiente ejemplo de salida, el primer estado de aprovisionamiento en esta instancia, "Failed", corresponde a la primera extensión, "customScript". Al hacer coincidir los estados de aprovisionamiento con las extensiones enumeradas, también puede determinar que en este ejemplo, la segunda y tercera extensiones enumeradas se aprovisionaron correctamente en la misma instancia.

Captura de pantalla del resultado que muestra el estado de aprovisionamiento y los nombres de extensión coincidentes.

Intentar escalar horizontalmente el conjunto de escalado de máquinas virtuales

Si la extensión no ha fallado en todas las instancias, agregue nuevas instancias al conjunto de escalado de máquinas virtuales y vea si el aprovisionamiento de extensión se realiza correctamente. Si se ejecuta correctamente, elimine las instancias en las que se ha fallado el aprovisionamiento de extensión.

Leer registros en instancias afectadas

Para obtener más información sobre la causa del error, inicie sesión en las instancias afectadas. Según el sistema operativo del conjunto de escalado de máquinas virtuales y la extensión afectada, vaya a los registros correspondientes y revise el período de tiempo afectado:

  • Windows conjuntos de escalado de máquinas virtuales: C:\WindowsAzure\logs\plugins\ExtensionName\Extension.log
  • Conjuntos de escalado de máquinas virtuales de Linux: /var/log/plugins/ExtensionName/Extension.log

Comprobar que la extensión con error sigue los procedimientos recomendados

Si la extensión es personalizable, como Custom Script Extension (CSE) o Desired State Configuration (DSC), compruebe que está siguiendo todos los requisitos previos necesarios y los procedimientos recomendados.

Reinstalar la extensión

  1. En la hoja Extensiones del conjunto de escalado de máquinas virtuales, seleccione la extensión con los errores de aprovisionamiento.

  2. Haga clic en Desinstalar.

    Captura de pantalla de la hoja de extensiones con el botón de desinstalación resaltado

  3. En la hoja Extensiones, haga clic en Agregar.

  4. Seleccione y vuelva a instalar la misma extensión.

Contactar soporte

Si no puede solucionar el problema, guarde los registros y abra una solicitud de soporte técnico.