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.
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.
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.
- Procedimientos recomendados de extensión de script personalizados
- Desired State Configuration requisitos previos
Reinstalar la extensión
En la hoja Extensiones del conjunto de escalado de máquinas virtuales, seleccione la extensión con los errores de aprovisionamiento.
Haga clic en Desinstalar.
En la hoja Extensiones, haga clic en Agregar.
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.