Fehler bei der Bereitstellung von VM-Erweiterungen in Virtual Machine Scale Sets

Dieser Artikel enthält Anleitungen zum Beheben von VMExtensionProvisioningError-, VMExtensionHandlerNonTransientError- oder VMExtensionProvisioningTimeout-Fehlern , die angezeigt werden, wenn Sie versuchen, eine VM-Skalierungsgruppe bereitzustellen, zu aktualisieren, ein Reimaging durchzuführen, zu starten oder zu skalieren.

Hinweis

Im Kontext von Virtual Machine Scale Sets bezieht sich die "VM" in diesen Fehlermeldungen auf einen instance innerhalb einer bestimmten VM-Skalierungsgruppe.

Symptome

Die Fehler VMExtensionProvisioningError, VMExtensionHandlerNonTransientError oder VMExtensionProvisioningTimeout werden wie in den folgenden Beispielen angezeigt:

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

Ursache

Eine VM-Erweiterung hängt nicht oder ist während des Bereitstellungszustands fehlgeschlagen.

Weitere Informationen zu Erweiterungsfehlern

Um mit der Behebung dieses Fehlers zu beginnen, sollten Sie zunächst ermitteln, welche Erweiterungen und instance betroffen sind. Führen Sie dazu den folgenden Azure-Befehlszeilenschnittstellenbefehl (Azure CLI) aus:

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

Die Ausgabe dieses Befehls zeigt die Bereitstellungsstatus der Erweiterungen auf jedem instance an. Die folgende Beispielausgabe zeigt, wie diese Erweiterungsinformationen nach instance-ID gruppiert werden.

Screenshot der Ausgabe mit hervorgehobenen instance-IDs

In jedem Abschnitt, der einem bestimmten instance gewidmet ist, zeigt die Liste "extProvisioningState" oben die Bereitstellungsstatus der erweiterungen an, die auf diesem instance installiert sind. Auf diese Liste folgt die Erweiterungsliste, in der die Namen der Erweiterungen in der gleichen Reihenfolge angezeigt werden.

In der folgenden Beispielausgabe entspricht beispielsweise der erste Bereitstellungsstatus in diesem instance "Failed" (Fehler) der ersten Erweiterung "customScript". Indem Sie die Bereitstellungsstatus mit den aufgeführten Erweiterungen abgleichen, können Sie auch feststellen, dass in diesem Beispiel die zweite und dritte aufgeführte Erweiterung erfolgreich auf demselben instance bereitgestellt wurden.

Screenshot der Ausgabe, die den Bereitstellungsstatus und übereinstimmende Erweiterungsnamen zeigt.

Versuchen Sie, die VM-Skalierungsgruppe zu horizontal hochzuskalieren.

Wenn bei der Erweiterung nicht bei jedem instance ein Fehler aufgetreten ist, fügen Sie der VM-Skalierungsgruppe neue Instanzen hinzu, und überprüfen Sie, ob die Bereitstellung der Erweiterung erfolgreich ist. Wenn dies erfolgreich ist, löschen Sie die Instanzen, für die bei der Erweiterungsbereitstellung ein Fehler aufgetreten ist.

Lesen von Protokollen für betroffenen Instanzen

Melden Sie sich bei den betroffenen Instanzen an, um weitere Einblicke in die Fehlerursache zu erhalten. Navigieren Sie abhängig vom Betriebssystem der VM-Skalierungsgruppe und der betroffenen Erweiterung zu den entsprechenden Protokollen, und überprüfen Sie den betroffenen Zeitrahmen:

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

Vergewissern Sie sich, dass die fehlerhafte Erweiterung bewährte Methoden befolgt.

Wenn die Erweiterung anpassbar ist, z. B. benutzerdefinierte Skripterweiterung (Custom Script Extension, CSE) oder Desired State Configuration (DSC), vergewissern Sie sich, dass Sie alle erforderlichen Voraussetzungen und empfohlenen bewährten Methoden einhalten.

Erneutes Installieren der Erweiterung

  1. Wählen Sie auf dem Blatt Erweiterungen der VM-Skalierungsgruppe die Erweiterung mit den Bereitstellungsfehlern aus.

  2. Klicken Sie auf Deinstallieren.

    Screenshot des Blatts

  3. Klicken Sie auf dem Blatt Erweiterungen auf Hinzufügen.

  4. Wählen Sie dieselbe Erweiterung aus, und installieren Sie sie erneut.

Kontaktieren Sie uns für Hilfe

Wenn Sie Fragen haben oder Hilfe mit Ihren Azure-Gutschriften benötigen, dann erstellen Sie beim Azure-Support eine Support-Anforderung oder fragen Sie den Azure Community-Support. Sie können auch Produktfeedback an die Azure Feedback Community senden.