虛擬機器擴展集 中的 VM 擴充功能布建錯誤
本文提供解決 VMExtensionProvisioningError、 VMExtensionHandlerNonTransientError 或 VMExtensionProvisioningTimeout 錯誤的指引,這些錯誤會在您嘗試部署、更新、重新安裝映像、啟動或調整虛擬機擴展集時出現。
注意事項
在 虛擬機器擴展集 的內容中,這些錯誤訊息中的「VM」是指特定虛擬機擴展集內的實例。
徵狀
您會看到 VMExtensionProvisioningError、 VMExtensionHandlerNonTransientError 或 VMExtensionProvisioningTimeout 錯誤,如下列範例所示:
'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) ,請確認您已遵循所有必要的必要條件和建議的最佳做法。
重新安裝擴充功能
在 [虛擬機擴展集] 的 [ 擴 充功能] 刀鋒視窗上,選取具有布建錯誤的擴充功能。
按一下 [解除安裝]。
在 [ 延伸模組] 刀鋒視窗中 ,按兩下 [ 新增]。
選取並重新安裝相同的擴充功能。
與我們連絡,以取得說明
如果您有問題或需要相關協助,請建立支援要求,或詢問 Azure community 支援。 您也可以將產品意見反應提交給 Azure 意應見反社群。