Erreurs de provisionnement d’extensions de machine virtuelle dans Virtual Machine Scale Sets

Cet article fournit des conseils sur la résolution des erreurs VMExtensionProvisioningError, VMExtensionHandlerNonTransientError ou VMExtensionProvisioningTimeout qui s’affichent lorsque vous tentez de déployer, mettre à jour, réimager, démarrer ou mettre à l’échelle un groupe de machines virtuelles identiques.

Remarque

Dans le contexte de Virtual Machine Scale Sets, la « machine virtuelle » dans ces messages d’erreur fait référence à un instance au sein d’un groupe de machines virtuelles identiques spécifique.

Symptômes

Vous voyez les erreurs VMExtensionProvisioningError, VMExtensionHandlerNonTransientError ou VMExtensionProvisioningTimeout , comme dans les exemples suivants :

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

Cause

Une extension de machine virtuelle est suspendue ou a échoué pendant l’état d’approvisionnement.

Obtenir plus d’informations sur l’échec de l’extension

Pour commencer à résoudre cette erreur, vous devez d’abord déterminer quelle(s) extension(s) et instance(s) sont affectées. Pour ce faire, exécutez la commande d’interface de ligne de commande Azure (Azure CLI) suivante :

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

La sortie de cette commande affiche les états d’approvisionnement des extensions sur chaque instance. L’exemple de sortie suivant montre comment ces informations d’extension sont regroupées par ID instance.

Capture d’écran de la sortie avec les ID de instance mis en évidence.

Dans chaque section dédiée à un instance particulier, la liste « extProvisioningState » en haut affiche les états d’approvisionnement des extensions installées sur cette instance. Cette liste est suivie de la liste « extension », qui affiche les noms des extensions dans le même ordre correspondant.

Par exemple, dans l’exemple de sortie suivant, le premier état d’approvisionnement de ce instance, « Échec », correspond à la première extension, « customScript ». En faisant correspondre les états d’approvisionnement aux extensions répertoriées, vous pouvez également déterminer que dans cet exemple, les deuxième et troisième extensions répertoriées ont été correctement configurées sur le même instance.

Capture d’écran de la sortie montrant l’état d’approvisionnement et les noms d’extension correspondants.

Tentative de scale-out du groupe de machines virtuelles identiques

Si l’extension n’a pas échoué sur chaque instance, ajoutez de nouvelles instances au groupe de machines virtuelles identiques et vérifiez si l’approvisionnement de l’extension réussit. Si l’opération réussit, supprimez les instances sur lesquelles l’approvisionnement de l’extension a échoué.

Lire les journaux sur les instances impactées

Pour en savoir plus sur la cause de l’erreur, connectez-vous aux instances affectées. En fonction du système d’exploitation du groupe de machines virtuelles identiques et de l’extension impactée, accédez aux journaux appropriés et passez en revue la période affectée :

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

Vérifiez que l’extension ayant échoué suit les bonnes pratiques

Si l’extension est personnalisable, par exemple extension de script personnalisé (CSE) ou Desired State Configuration (DSC), vérifiez que vous suivez toutes les conditions préalables nécessaires et les meilleures pratiques recommandées.

Réinstaller l’extension

  1. Dans le panneau Extensions du groupe de machines virtuelles identiques, sélectionnez l’extension avec les erreurs d’approvisionnement.

  2. Cliquez sur Désinstaller.

    Capture d’écran du panneau extensions avec le bouton Désinstaller mis en évidence

  3. Dans le panneau Extensions , cliquez sur Ajouter.

  4. Sélectionnez et réinstallez la même extension.

Contactez-nous pour obtenir de l’aide

Pour toute demande ou assistance, créez une demande de support ou posez une question au support de la communauté Azure. Vous pouvez également soumettre des commentaires sur les produits à la communauté de commentaires Azure.