【发布时间】:2021-08-08 19:17:25
【问题描述】:
我正在尝试制作一个 bash 脚本来删除所有订阅中可用的每个 VM 及其关联的资源组。单行代码。
所以,到目前为止,我所做的是:
for i in `az account list --query "[].{id:id}" --output tsv`; do az account set --subscription $i; VMS=`az vm list --query [].name --output tsv`; tLen=${#VMS[@]} ; for (( i=0; i<${tLen}; i++ )); do RG=`az vm list --query [$i].resourceGroup --output tsv`; az vm delete --ids $(az vm list -g ${RG} --query "[].id" -o tsv) --yes --no-wait ; az group delete --name ${RG} --yes --no-wait; done ; done
嗯,它有效,但并不完美。它留下了一些虚拟机及其关联的资源组。所以,我想把代码上传到 stack-overflow 上。好吧,它可能对某人有用,我也需要一些帮助。
那么,有人可以帮助我吗?请检查我的代码,我非常擅长编码。我在这里需要一些专家建议。在此先感谢:)
【问题讨论】:
-
您可以简单地删除资源组,而不是单独删除 VM 和包含的资源组。这也会删除虚拟机。无需先删除虚拟机再删除资源组。
-
@GauravMantri 感谢您的提示。我调整了我的代码,现在它可以完美运行了。我将在答案中发布代码。
标签: bash azure command-line-interface azure-cli azureportal