gpt4 book ai didi

azure - 如何使用 Azure cli 仅将标签分配给资源组中的所有 VM

转载 作者:行者123 更新时间:2023-12-03 04:20:34 25 4
gpt4 key购买 nike

我正在尝试编写一个 Azure CLI 脚本,该脚本使我使用服务主体登录到门户,选择订阅,然后仅在每个资源组中标记该订阅中的 VM。

az login -u $service_principal_ID -p $service_principal_password --service-principal --tenant $tenant_ID

az account set --subscription $subID

az resource tag --resource-group $rg \
--tags tags.project=$project tags.owner=$owner tags.environment=$env \
--resource-type "Microsoft.Compute/virtualMachines" \
--output tsv

运行此语句时,Azure 给出错误 --name is Missing,但我不想一一标记虚拟机。

有什么想法吗?

最佳答案

我实际上没有尝试过这个(我不需要任何资源标记;))

但是这样的事情应该能让你工作。

基本上,您需要传递该命名参数,唯一的方法是首先解析 VM 列表。

sample=$(az vm list --resource-group $rg )
for row in $(echo "${sample}" | jq -r '.[] | @base64'); do
_jq() {
echo ${row} | base64 --decode | jq -r ${1}
}

VMName=$(_jq '.name')

az resource tag --resource-group $rg \
--tags tags.project=$project tags.owner=$owner tags.environment=$env \
--resource-type "Microsoft.Compute/virtualMachines" \
--name $VMName \
--output tsv

done

完全不相关,这可能应该被删除 - 但该死的,我确实怀念这些东西在 PowerShell 中是多么简单。

关于azure - 如何使用 Azure cli 仅将标签分配给资源组中的所有 VM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49535968/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com