我正在尝试在 Azure 上部署 Windows SQL Server 并使用 CustomScriptExtension 资源在其上运行脚本。
在部署 Windows Server SKU 时,我已经成功使用了 CustomScriptExtension,但是当我尝试在运行 SQLServer SKU 的 Azure VM 上部署它时,我无法理解发生了什么(以及在哪里可以找到更多详细信息)。
例如使用
"imageReference": {
"publisher": "MicrosoftSQLServer",
"offer": "SQL2008R2SP3-WS2008R2SP1",
"sku": "Enterprise",
"version": "10.60.6001"
},
和:
{
"name": "[concat('machineName','/','install-puppet-1')]",
"type": "Microsoft.Compute/virtualMachines/extensions",
"apiVersion": "2015-06-15",
"dependsOn": [
"[resourceId('Microsoft.Compute/virtualMachines','machineName')]"
],
"location": "[resourceGroup().location]",
"properties": {
"publisher": "Microsoft.Compute",
"type": "CustomScriptExtension",
"typeHandlerVersion": "1.9",
"settings": {
"fileUris": "[split(concat(parameters('containerUri_1'), parameters('scriptToExecute_1')),' ')]",
"commandToExecute": "[concat(parameters('commandToExecute_1'),' ',parameters('scriptToExecute_1'), ' -puppetEnvironment ', parameters ('puppetEnvironment_1'), ' -runInterval ', parameters ('puppetRunInterval_1'), ' -vmRegion ', parameters ('vmRegion_1'), ' -vmEnvironment ', parameters ('vmEnvironment_1'), ' -vmRole ', parameters ('vmRole_1'))]"
},
"protectedSettings": {
"storageAccountName": "[parameters('customScriptStorageAccountName_1')]",
"storageAccountKey": "[parameters('customScriptStorageAccountKey_1')]"
}
}
},
部署成功,但“下载”文件夹C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\1.9.1
无处可寻,并且 commandToExecute 失败,返回代码 != 0
相同的代码应用于以下 SKU 时有效:
"imageReference": {
"publisher": "MicrosoftWindowsServer",
"offer": "WindowsServer",
"sku": "2008-R2-SP1",
"version": "2.127.20180412"
}
更新:错误似乎是这样的:
[3800+00000001] [06/05/2018 06:29:15.41] [WARN] Current sequence number, 0, is not greater than the sequence number of the most recently executed configuration. Exiting...
这似乎是因为 SQLServer 映像是使用 customscript 扩展创建的,而该扩展在某种程度上“消耗”了序列号。
答案1
根据经验,我相信你是对的,自定义脚本可能已经在图像上,这就是为什么你从处理程序中收到错误。
这可能是设计使然,因此获得准确答案的最佳方法是联系支持人员来调查图像。
我知道如果你使用 PowerShell 进行部署,-Forcererun
开关可能会起作用,但对于 JSON,我不确定。你可以尝试forceUpdateTag