Loading...

文章背景图

Azure CLI 部署指南:微软 Azure 云命令行工具多平台安装与运维实战

2026-10-29
0
- 字
- 分钟
|

一、项目简介与核心特性

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 命令行演示

二、环境准备与依赖要求

安装 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_ID

VS Code 集成

安装 Azure CLI Tools 扩展 后,可以创建 .azcli 文件,享受命令 IntelliSense、代码片段和一键执行。

Azure CLI Tools VS Code 扩展演示

关闭遥测

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 补全和脚本退出码设计使其在批量资源管理场景中表现出色。

相关资源:

评论交流

文章目录