删除虚拟机是自定义脚本,在Azure资源管理器模板中失败

问题描述 投票:0回答:1

我正在使用Azure资源管理器模板在Azure中部署VM。我有一个自定义脚本,可以在VM启动后运行。即使脚本失败,脚本也会运行,VM仍会启动。如果自定义脚本失败,是否有办法拆除VM?

  "properties": {
    "publisher": "Microsoft.Azure.Extensions",
    "type": "CustomScript",
    "typeHandlerVersion": "2.0",
    "autoUpgradeMinorVersion": true,
    "settings": {
      "fileUris": [
        "[uri(parameters('_artifactsLocation'), concat('scripts/copyfilefromazure.sh', parameters('_artifactsLocationSasToken')))]"
      ]
    },
    "protectedSettings": {
      "commandToExecute": "[concat('bash ', variables('scriptFileName'), ' ', variables('scriptArgs'))]"
    }
azure azure-resource-manager azure-marketplace
1个回答
1
投票

根据您的要求,您需要了解模板部署进度的顺序。

创建扩展名为VM的虚拟机。它将首先创建VM,然后在VM中执行VM扩展。因此,无论VM扩展执行失败还是成功。虚拟机已经在运行。而且,恐怕没有自定义扩展名失败的功能,模板会删除所有资源本身。据我所知,Azure模板无法删除资源。

因此,我认为合适的解决方案是创建一个脚本来检查VM扩展是否成功执行,否则,请使用CLI命令az vm extension delete删除该扩展(假设您使用的是Azure CLI)。然后使用CLI命令az vm extension delete再次安装VM扩展。

© www.soinside.com 2019 - 2024. All rights reserved.