如何使用az cli查询安装指定LoginForLinux扩展的Azure虚拟机
Azure CLI 查询参数配置方法
直接使用以下JMESPath格式的--query参数即可,不需要单独枚举两个扩展名称,只要扩展名称包含LoginForLinux字段的虚拟机都会被匹配到:
az vm list --query "[?not_null(extensions) && extensions[?contains(name, 'LoginForLinux')]].name" -o json
查询逻辑说明
- 外层
[? ... ]用来遍历所有返回的虚拟机条目做条件筛选 - 加入
not_null(extensions)判断是为了跳过未安装任何扩展的虚拟机,避免空值导致查询报错 extensions[?contains(name, 'LoginForLinux')]是核心匹配规则:校验当前虚拟机的扩展列表中,是否存在名称包含LoginForLinux字符串的扩展,AADSSHLoginForLinux、AADLoginForLinux都会被命中- 末尾的
.name指定只返回符合条件的虚拟机名称字段,不返回其他冗余信息
如果需要直接输出无格式的纯名称列表方便后续脚本处理,可以把输出参数从-o json换成-o tsv。
内容的提问来源于stack exchange,提问作者Chris
相关产品推荐
相关产品推荐

