一、项目简介与核心特性
Azure CLI(命令行工具名为 az)是微软官方推出的跨平台 Azure 命令行管理工具,用于通过终端脚本创建和管理 Azure 云资源。它支持 Windows、macOS 和 Linux,并提供 Docker 容器镜像,是服务器运维和 DevOps 自动化中管理 Azure 资源的核心工具。
Azure CLI 采用 Python 开发,插件化架构设计。核心命令覆盖虚拟机、存储账户、网络、数据库、容器服务(AKS)、函数应用等几乎所有 Azure 服务。其主要特性包括:Tab 自动补全、JMESPath 查询语法过滤输出、JSON/Table/TSV 多种输出格式、异步操作轮询、服务主体认证自动化,以及与 VS Code 深度集成。
二、环境准备与依赖要求
安装 Azure CLI 前需要确认以下环境条件:
- 操作系统:Windows 10+、macOS 12+、Ubuntu 20.04/22.04/24.04、Debian 11+、RHEL 8/9、CentOS Stream 8/9 等。
- Python:通过 pip 安装时需要 Python 3.8+(推荐 3.9 至 3.12)。官方 MSI、DEB、RPM 包自带 Python 运行时,无需额外安装。
- Azure 账户:需要有效的 Azure 订阅才能登录和管理资源。免费试用账户可在 Azure 官网 注册。
- 网络:需要能访问 Azure 服务端点。如果在企业代理环境中,需配置 HTTP_PROXY 和 HTTPS_PROXY 环境变量。
如果你不想在本地安装,也可以直接使用 Azure Cloud Shell,它在浏览器中提供预装 Azure CLI 的终端环境。
三、安装部署(多种方式)
方式一:Windows 官方安装包
下载 MSI 安装包安装:
winget install -e --id Microsoft.AzureCLI或从 微软官网 下载 MSI 双击安装。安装后在新的命令行窗口运行 az --version 验证。
方式二:macOS Homebrew
brew update && brew install azure-cli方式三:Ubuntu/Debian 官方包仓库
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash该脚本会自动导入微软 GPG 密钥、添加 apt 源并安装 azure-cli 包。
方式四:RHEL/CentOS 仓库
sudo dnf install -y https://azcliprod.blob.core.windows.net/packages/repo/el/8/azure-cli-release.rpm
sudo dnf install -y azure-cli方式五:pip 安装(虚拟环境推荐)
python3 -m venv env
source env/bin/activate
pip install azure-cli注意:微软不建议在系统全局 Python 环境中直接 pip 安装,因为可能与系统 Python 包冲突。始终使用虚拟环境。
方式六:Docker 容器
微软官方维护了预装 Azure CLI 的 Docker 镜像:
docker run -u $(id -u):$(id -g) -v ${HOME}:/home/az -e HOME=/home/az --rm -it mcr.microsoft.com/azure-cli:latest挂载用户主目录是为了保存登录凭证和配置。
方式七:Edge 开发版
如果需要体验 dev 分支的最新功能,可以安装 Edge 构建版本:
pip3 install --pre azure-cli --extra-index-url https://azurecliprod.blob.core.windows.net/edge --upgrade-strategy=eager四、快速上手与基本配置
安装完成后,第一步是登录 Azure:
az login该命令会打开浏览器进行 OAuth 授权。在无图形界面的服务器上,使用设备码登录:
az login --use-device-code指定订阅:
az account set --subscription "你的订阅名称或ID"查看当前登录状态:
az account show配置默认输出格式为表格(更易读):
az configure --defaults output=table创建一台 Linux 虚拟机示例:
az vm create \
--resource-group myResourceGroup \
--name myVM \
--image Ubuntu2204 \
--admin-username azureuser \
--generate-ssh-keys五、进阶配置与使用场景
Tab 自动补全
Azure CLI 支持命令、参数和资源名称的 Tab 补全。在 Bash 中执行:
az vm show -g [tab][tab]JMESPath 查询
使用 --query 参数过滤输出,只显示需要的字段:
az vm list --query "[?provisioningState=='Succeeded'].{ name: name, os: storageProfile.osDisk.osType }"退出码脚本化
Azure CLI 为脚本提供了明确的退出码:0 表示成功,1 表示通用错误,2 表示命令行解析错误,3 表示资源不存在。在 Shell 脚本中可以据此判断执行结果。
服务主体非交互登录
在 CI/CD 流水线中,使用服务主体进行无浏览器登录:
az login --service-principal -u http://myApp -p $CLIENT_SECRET --tenant $TENANT_IDVS Code 集成
安装 Azure CLI Tools 扩展 后,可以创建 .azcli 文件,享受命令 IntelliSense、代码片段和一键执行。
关闭遥测
Azure CLI 默认收集使用数据,如需关闭:
az config set core.collect_telemetry=no六、常见问题(FAQ)与报错解决
Q1:az: command not found
安装后命令行找不到 az,通常是 PATH 未生效。Windows 上重新打开命令行;Linux 上检查 /etc/apt/sources.list.d/ 是否正确添加了微软源,并确认 which az 有输出。pip 安装方式需确认虚拟环境已激活。
Q2:登录报 AADSTS50173 或令牌过期错误
执行 az logout 后重新 az login。长期运行的脚本中,使用服务主体登录而非交互式登录,避免令牌过期。
Q3:在代理服务器后无法连接 Azure
设置环境变量:
export HTTP_PROXY=http://your-proxy:port
export HTTPS_PROXY=http://your-proxy:port如代理需要认证,格式为 http://user:password@proxy:port。
Q4:pip install azure-cli 报依赖冲突
不要在系统 Python 中直接安装。使用虚拟环境:python3 -m venv env && source env/bin/activate && pip install azure-cli。如果仍有冲突,使用 --upgrade-strategy=eager 强制升级依赖。
Q5:az vm create 报 QuotaExceeded 错误
当前订阅在该区域的 vCPU 配额不足。执行 az vm list-usage --location eastus 查看配额,或在 Azure 门户提交配额提升申请。
Q6:Edge 版与稳定版冲突
Windows 上安装 Edge 版前必须先卸载官方稳定版。macOS 上先执行 brew uninstall azure-cli。Linux 上直接安装对应 DEB/RPM 包会自动替换。
七、总结与参考资源
Azure CLI 是管理 Azure 云资源的必备命令行工具,支持 Windows、macOS、Linux 和 Docker 多平台部署。通过官方包管理器、pip 虚拟环境或容器镜像均可快速安装,配合服务主体认证可实现 CI/CD 流水线的全自动化运维。其 JMESPath 查询、Tab 补全和脚本退出码设计使其在批量资源管理场景中表现出色。
相关资源: