我们正在使用通过MSDN提供的Windows-10-N-x64
Azure VM映像进行自动化,并且间歇性地看到我们的Custom Script Extension无法在VM上初始化。它的时间大约 20%。
当它挂起时,Get-AzureRmVMExtension
并不表示挂起期间发生任何错误。
ResourceGroupName : resource-group-id
VMName : Windows-VM
Name : Script-Extensions
Location : centralus
Etag : null
Publisher : Microsoft.Compute
ExtensionType : CustomScriptExtension
TypeHandlerVersion : 1.7
Id : /subscriptions/subscription-id/resourceGroups/resource-group-id/providers/M
icrosoft.Compute/virtualMachines/Windows-VM/extensions/Script-Extensions
PublicSettings : {
"fileUris": [
"https://resource-group-id.blob.core.windows.net/provisioning-container/Enable-PSRemotingAnd
DSC.ps1",
"https://resource-group-id.blob.core.windows.net/provisioning-container/microsoft-windows-ne
tfx3-ondemand-package.cab"
],
"commandToExecute": "powershell.exe -ExecutionPolicy Unrestricted -File
Enable-PSRemotingAndDSC.ps1 -NetFxCabinetFilePath
microsoft-windows-netfx3-ondemand-package.cab -DNSName
dns-name.centralus.cloudapp.azure.com"
}
ProtectedSettings :
ProvisioningState : Creating
Statuses :
SubStatuses :
AutoUpgradeMinorVersion : False
ForceUpdateTag :
Azure门户将在此期间将扩展状态显示为Transitioning
,并且未报告任何错误。
C:\WindowsAzure\Logs\Plugins\Microsoft.Compute.CustomScriptExtension\1.7
中VM上的日志也不会显示任何错误。
如果我们不采取任何行动,我们最终会收到超时错误。
Exception : System.Exception: 4:00:34 PM - Resource
Microsoft.Compute/virtualMachines/extensions
'Windows-VM/Script-Extensions' failed with message '{
"status": "Failed",
"error": {
"code": "ResourceDeploymentFailure",
"message": "The resource operation completed with
terminal provisioning state 'Failed'.",
"details": [
{
"code": "VMExtensionProvisioningTimeout",
"message": "Provisioning of VM extension
'Script-Extensions' has timed out. Extension
installation may be taking too long, or extension
status could not be obtained."
}
]
}
}'
TargetObject :
CategoryInfo : NotSpecified: (:)
[New-AzureRmResourceGroupDeployment], Exception
FullyQualifiedErrorId : Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implem
entation.NewAzureResourceGroupDeploymentCmdlet
如果我们在挂起时登录虚拟机并手动执行C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\1.7\enable.cmd
,则扩展会成功。
此时,我们想知道这是否是Azure本身的问题,因为我们的自定义脚本本身甚至没有执行。我们可以查看更多日志来诊断此挂起吗?
答案 0 :(得分:0)
这已被Azure支持人员确认为Azure自定义脚本扩展中的错误,预计解决日期为2017年7月。
答案 1 :(得分:0)
尝试使用自定义脚本扩展(版本1.9)以及其他资源部署VM时遇到类似问题,使用Azure CLI 2.0中的ARM模板。手动执行enable.cmd
的OP所描述的解决方法没有任何效果,对我来说问题是100%的时间都在发生。
这是我的ARM模板的CustomScriptExtension部分。
{
"type": "Microsoft.Compute/virtualMachines/extensions",
"name": "vm/CustomScriptExtension",
"location": "westus",
"properties": {
"publisher": "Microsoft.Compute",
"type": "CustomScriptExtension",
"typeHandlerVersion": "1.9",
"autoUpgradeMinorVersion": true,
"settings": {
"fileUris": [
"https://myblobsubdomain.blob.core.windows.net/container/my-script.ps1"
],
"commandToExecute": ".\\my-script.ps1"
}
}
}
即使是单线"回声"脚本,这个过程似乎永远悬挂(我从来没有让它运行足够长的时间来查看它是否会超时),在Azure门户中为扩展名列出了Transitioning状态。我能够确认脚本的任何部分都没有运行。
原来问题是我的commandToExecute,特别是我试图用.\my-script.ps1
运行脚本。一旦我将其更改为直接调用powershell
命令,问题就消失了,我的脚本成功运行了!
以下是我的ARM模板相关部分的最终工作版本。
{
"type": "Microsoft.Compute/virtualMachines/extensions",
"name": "vm/CustomScriptExtension",
"location": "westus",
"properties": {
"publisher": "Microsoft.Compute",
"type": "CustomScriptExtension",
"typeHandlerVersion": "1.9",
"autoUpgradeMinorVersion": true,
"settings": {
"fileUris": [
"https://myblobsubdomain.blob.core.windows.net/container/my-script.ps1"
],
"commandToExecute": "powershell -ExecutionPolicy Unrestricted -File ./my-script.ps1"
}
}
}
请注意,指定-ExecutionPolicy Unrestricted
对于脚本实际运行也是必需的,但省略它不会导致转换问题。