虛擬機器擴展集 中的 VM 擴充功能布建錯誤

本文提供解決 VMExtensionProvisioningErrorVMExtensionHandlerNonTransientErrorVMExtensionProvisioningTimeout 錯誤的指引,這些錯誤會在您嘗試部署、更新、重新安裝映像、啟動或調整虛擬機擴展集時出現。

注意事項

在 虛擬機器擴展集 的內容中,這些錯誤訊息中的「VM」是指特定虛擬機擴展集內的實例。

徵狀

您會看到 VMExtensionProvisioningErrorVMExtensionHandlerNonTransientErrorVMExtensionProvisioningTimeout 錯誤,如下列範例所示:

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

原因

VM 擴充功能在布建狀態期間停止回應或失敗。

取得擴充功能失敗的詳細資訊

若要開始解決此錯誤,您應該先判斷哪個延伸 (的) 和實例 (的) 受到影響。 若要這樣做,請 (Azure CLI) 命令執行下列 Azure 命令行介面:

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

此命令的輸出會顯示每個實例上擴充功能的布建狀態。 下列範例輸出顯示此擴充功能資訊如何依實例標識符分組。

輸出的螢幕快照,其中已醒目提示實例標識碼。

在特定實例專用的每個區段中,頂端的 「extProvisioningState」 列表會顯示該實例上所安裝擴充功能的布建狀態。 此清單後面接著 「擴充功能」清單,以相同的對應順序顯示延伸模組的名稱。

例如,在下列範例輸出中,此實例中的第一個布建狀態 “Failed” 會對應至第一個延伸模組 “customScript”。藉由比對布建狀態與列出的延伸模組,您也可以判斷在此範例中,列出的第二個和第三個延伸模組已成功布建在相同的實例上。

輸出的螢幕快照,其中顯示布建狀態和相符的擴充功能名稱。

嘗試相應放大虛擬機擴展集

如果擴充功能並未在每個實例上失敗,請將新的實例新增至虛擬機擴展集,並查看擴充功能布建是否成功。 如果成功,請刪除延伸模組布建失敗的實例。

讀取受影響實例的記錄

若要深入瞭解錯誤的原因,請登入受影響的實例。 根據虛擬機擴展集的 OS 和受影響的延伸模組,流覽至適當的記錄,並檢閱受影響的時間範圍:

  • Windows 虛擬機器擴展集C:\WindowsAzure\logs\plugins\ExtensionName\Extension.log
  • Linux 虛擬機器擴展集/var/log/plugins/ExtensionName/Extension.log

確認失敗的擴充功能遵循最佳做法

如果擴充功能是可自定義的,例如自定義腳本擴充功能 (CSE) 或 Desired State Configuration (DSC) ,請確認您已遵循所有必要的必要條件和建議的最佳做法。

重新安裝擴充功能

  1. 在 [虛擬機擴展集] 的 [ 充功能] 刀鋒視窗上,選取具有布建錯誤的擴充功能。

  2. 按一下 [解除安裝]

    延伸模組刀鋒視窗的螢幕快照,其中已醒目提示 [卸載] 按鈕

  3. 在 [ 延伸模組] 刀鋒視窗中 ,按兩下 [ 新增]

  4. 選取並重新安裝相同的擴充功能。

與我們連絡,以取得說明

如果您有問題或需要相關協助,請建立支援要求,或詢問 Azure community 支援。 您也可以將產品意見反應提交給 Azure 意應見反社群