azure cli vm创建标签

时间:2018-12-11 12:04:56

标签: azure azure-virtual-machine azure-cli

通过带有标签列表的az cli(bash)创建VM时。

首先设置此变量:
tags='env=qa servertype=frontend Distinct=qa-frontend25 CI=Yes DataDog:True'

但是在bash shell中运行以下命令时,
az vm create ... --tags "${tags}"

它将创建一个长标签,其中包含键env和值qa servertype=frontend Distinct=qa-frontend25 CI=Yes DataDog=True

从Azure CLI documentation

--tags Space-separated tags in 'key[=value]' format.

这里缺少什么?

2 个答案:

答案 0 :(得分:1)

如果要为一个VM创建多标签,则应像这样添加参数--tags

--tags 'tag1=test1' 'tag2=test2'

结果如下:

enter image description here

它还会在您提供的文档az vm create中显示。与您有误会。

  

-以'key [= value]'格式标记以空格分隔的标记。使用“”清除现有标签。

更新

是的,您可以在变量中设置多标签,然后将其放入命令中,如下所示:

tags="tag1=test1 tag2=test2"

az vm create -g resourceGroupName -n vmName --image image --tags $tags

它将很好地工作。并回答@Johan,如果您删除引号,它也可以使用。这是一个很好的问题。实际上,该变量在CLI命令中的工作方式如下:

--tags $tags -> --tags tag1=test1 tag2=test2

就像在bash中使用echo $tags

答案 1 :(得分:0)

不像您想的那样花哨,但这是我以前使用过的,并确认仍可以使用。

tags1="tag1=test1"
tags2="tag2=test2"
az vm create -n MyVm2 -g MyResourceGroup --image UbuntuLTS --tags $tags1 $tags2

Image

Image

找不到将标签分组为一个变量的方法。

希望这会有所帮助。