Errores de aprovisionamiento de extensiones de máquina virtual en Virtual Machine Scale Sets

En este artículo se proporcionan instrucciones sobre la resolución de 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 Virtual Machine Scale Sets, la "máquina virtual" 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á los 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á bloqueada o ha producido un error durante el estado de aprovisionamiento.

Obtenga 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}"

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

Captura de pantalla de la salida con los identificadores de instancia resaltados.

En cada sección dedicada a una instancia determinada, la lista "extProvisioningState" de la parte superior muestra los estados de aprovisionamiento de las extensiones instaladas en esa instancia. Esta lista va seguida de la lista de "extensiones", que muestra los nombres de las extensiones en el mismo orden correspondiente.

Por ejemplo, en la salida de ejemplo siguiente, el primer estado de aprovisionamiento de 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, las extensiones segunda y tercera enumeradas se aprovisionaron correctamente en la misma instancia.

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

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

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

Lectura de registros en instancias afectadas

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

  • Windows Virtual Machine Scale Sets: C:\WindowsAzure\logs\plugins\ExtensionName\Extension.log
  • Linux Virtual Machine Scale Sets: /var/log/plugins/ExtensionName/Extension.log

Compruebe que la extensión con errores sigue los procedimientos recomendados.

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

Reinstalación de 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 extensiones con el botón desinstalar resaltado

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

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

Ponte en contacto con nosotros para obtener ayuda

Si tiene preguntas o necesita ayuda, cree una solicitud de soporte o busque consejo en la comunidad de Azure. También puede enviar comentarios sobre el producto con los comentarios de la comunidad de Azure.