Azure CLI 入门:安装、配置与基础命令详解
Azure 命令行接口 (CLI) 是一个跨平台、开源的工具,用于管理 Azure 资源。无论您是开发人员、DevOps 工程师还是 IT 专业人员,掌握 Azure CLI 都是高效管理 Azure 云的关键。本文将详细介绍 Azure CLI 的安装、配置以及常用命令,帮助您快速入门并熟练运用这个强大的工具。
一、Azure CLI 的优势与应用场景
与其他 Azure 管理工具(如 Azure 门户、PowerShell)相比,Azure CLI 具有以下优势:
- 跨平台性: Azure CLI 支持 Windows、macOS 和 Linux 等主流操作系统,确保您在任何环境下都能保持一致的管理体验。
- 自动化: 通过编写脚本,您可以轻松实现 Azure 资源的批量创建、配置、更新和删除,大大提高工作效率。
- 可重复性: 使用脚本部署资源可以确保环境的一致性,避免手动配置带来的错误和偏差。
- 易于学习: Azure CLI 命令结构清晰、易于理解,即使是初学者也能快速上手。
- 集成性: Azure CLI 可以与其他工具(如 CI/CD 管道、代码编辑器)无缝集成,方便您在开发和部署流程中使用。
Azure CLI 的应用场景非常广泛,包括但不限于:
- 资源管理: 创建、配置、查询和删除虚拟机、存储账户、网络资源、数据库等各种 Azure 资源。
- 部署应用: 将应用程序部署到 Azure Web 应用、容器实例、Kubernetes 服务等。
- 监控与日志: 查询 Azure 资源的监控数据和日志,帮助您诊断问题和优化性能。
- 权限管理: 管理 Azure 资源的访问控制,确保资源安全。
- 策略管理: 定义和实施 Azure 策略,确保资源符合组织规范。
二、Azure CLI 的安装
在开始使用 Azure CLI 之前,您需要先在您的计算机上安装它。Azure CLI 支持多种安装方式,您可以根据自己的操作系统选择最合适的方法。
1. Windows
-
MSI 安装程序(推荐):
- 访问 Azure CLI 下载页面:https://aka.ms/installazurecliwindows
- 下载并运行 MSI 安装程序。
- 按照安装向导的提示完成安装。
- 重新启动命令提示符或 PowerShell 窗口。
-
PowerShell (管理员权限):
powershell
Invoke-WebRequest -Uri https://aka.ms/installazurecliwindows -OutFile .\AzureCLI.msi; Start-Process msiexec.exe -Wait -ArgumentList '/I AzureCLI.msi /quiet'; rm .\AzureCLI.msi -
Chocolatey:
choco install azure-cli
-
Windows Subsystem for Linux (WSL):
在 WSL 中,按照 Linux 的安装方法进行安装。
2. macOS
-
Homebrew(推荐):
- 安装 Homebrew(如果尚未安装):
bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" - 安装 Azure CLI:
bash
brew update && brew install azure-cli
- 安装 Homebrew(如果尚未安装):
-
手动安装:
bash
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
3. Linux
大多数 Linux 发行版都提供了 Azure CLI 的软件包。
-
Debian/Ubuntu (apt):
bash
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash -
Red Hat/CentOS/Fedora (yum/dnf):
bash
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
sudo sh -c 'echo -e "[azure-cli]
name=Azure CLI
baseurl=https://packages.microsoft.com/yumrepos/azure-cli
enabled=1
gpgcheck=1
gpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/azure-cli.repo'
sudo yum install azure-cli # 或 sudo dnf install azure-cli -
SUSE/openSUSE (zypper):
bash
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
sudo sh -c 'echo -e "[azure-cli]
name=Azure CLI
baseurl=https://packages.microsoft.com/yumrepos/azure-cli
enabled=1
gpgcheck=1
gpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/zypp/repos.d/azure-cli.repo'
sudo zypper install azure-cli -
手动安装:
如果您的发行版没有提供 Azure CLI 软件包,可以使用以下命令手动安装:bash
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
4. Docker
如果您使用 Docker,可以直接运行 Azure CLI 的 Docker 镜像:
bash
docker run -it mcr.microsoft.com/azure-cli
这将启动一个包含 Azure CLI 的容器,您可以在其中运行命令。
5. 验证安装
安装完成后,打开命令提示符或终端窗口,运行以下命令验证安装是否成功:
bash
az --version
如果安装成功,您将看到 Azure CLI 的版本信息。
三、Azure CLI 的配置
安装 Azure CLI 后,您需要进行一些配置才能开始使用。
1. 登录 Azure
使用 az login
命令登录到您的 Azure 帐户。
bash
az login
这将打开一个浏览器窗口,您需要在其中输入您的 Azure 帐户凭据。登录成功后,您将看到您的订阅列表。
如果您有多个 Azure 订阅,可以使用以下命令切换到特定的订阅:
bash
az account set --subscription <subscription_id_or_name>
2. 配置默认输出格式
Azure CLI 支持多种输出格式,包括 JSON(默认)、JSONC(彩色 JSON)、table(表格)、tsv(制表符分隔值)和 yaml。您可以使用 az configure
命令配置默认输出格式:
bash
az configure
这条命令会以交互式的方式让你选择输出格式、是否开启遥测数据收集、是否开启缓存等。
您也可以使用 --output
参数在单个命令中指定输出格式:
bash
az vm list --output table
3. 配置默认资源组和位置
如果您经常使用某个资源组和位置,可以将其设置为默认值,以简化命令:
bash
az configure
在交互式配置中,选择你的默认资源组和位置。
或者,使用以下命令手动配置:
bash
az config set defaults.group=<resource_group_name>
az config set defaults.location=<location_name>
配置完成后,您在创建资源时可以省略 --resource-group
和 --location
参数(如果使用默认值)。
4. 其他配置选项
Azure CLI 还提供了许多其他配置选项,您可以使用 az config
命令进行管理。例如:
-
启用/禁用遥测数据收集:
bash
az config set core.collect_telemetry=true/false -
配置代理:
bash
az config set core.proxy=<proxy_url> -
配置超时时间:
bash
az config set core.http_timeout=<timeout_in_seconds>
四、Azure CLI 基础命令详解
Azure CLI 命令采用 az <group> <subgroup> <command>
的结构。
- group: 代表 Azure 服务或资源类型,例如
vm
(虚拟机)、storage
(存储)、network
(网络)等。 - subgroup: 代表资源的子类型或操作类别,例如
vm
组下的image
(虚拟机映像)、extension
(虚拟机扩展)等。 - command: 代表具体的操作,例如
create
(创建)、list
(列出)、show
(显示)、delete
(删除)等。
下面介绍一些常用的 Azure CLI 命令及其用法。
1. 资源组管理 (az group)
-
创建资源组:
bash
az group create --name <resource_group_name> --location <location_name>例如:
bash
az group create --name MyResourceGroup --location eastus -
列出资源组:
bash
az group list -
显示资源组详细信息:
bash
az group show --name <resource_group_name> -
删除资源组:
警告: 删除资源组将删除其中的所有资源,请谨慎操作。bash
az group delete --name <resource_group_name> --yes # --yes 参数用于跳过确认提示
2. 虚拟机管理 (az vm)
-
创建虚拟机:
bash
az vm create \
--resource-group <resource_group_name> \
--name <vm_name> \
--image <image_name> \
--admin-username <admin_username> \
--admin-password <admin_password> \
--size <vm_size>例如:
bash
az vm create \
--resource-group MyResourceGroup \
--name MyVM \
--image UbuntuLTS \
--admin-username azureuser \
--admin-password MyPassword123 \
--size Standard_B1s
注意: 在实际使用时, 建议使用SSH密钥进行身份验证, 而不是密码. -
列出虚拟机:
bash
az vm list --resource-group <resource_group_name> -
显示虚拟机详细信息:
bash
az vm show --resource-group <resource_group_name> --name <vm_name> -
启动虚拟机:
bash
az vm start --resource-group <resource_group_name> --name <vm_name> -
停止虚拟机:
bash
az vm stop --resource-group <resource_group_name> --name <vm_name>
* 释放虚拟机(停止并释放资源)
bash
az vm deallocate --resource-group <resource_group_name> --name <vm_name> -
删除虚拟机:
bash
az vm delete --resource-group <resource_group_name> --name <vm_name> --yes -
使用SSH密钥创建虚拟机
bash
az vm create \
--resource-group myResourceGroup \
--name myVM \
--image UbuntuLTS \
--admin-username azureuser \
--generate-ssh-keys
3. 存储账户管理 (az storage account)
-
创建存储账户:
bash
az storage account create \
--name <storage_account_name> \
--resource-group <resource_group_name> \
--location <location_name> \
--sku <sku_name> \
--kind <kind_name>例如:
bash
az storage account create \
--name mystorageaccount \
--resource-group MyResourceGroup \
--location eastus \
--sku Standard_LRS \
--kind StorageV2 -
列出存储账户:
bash
az storage account list --resource-group <resource_group_name> -
显示存储账户详细信息:
bash
az storage account show --name <storage_account_name> --resource-group <resource_group_name>
* 获取连接字符串
bash
az storage account show-connection-string -g <resource_group_name> -n <storage_account_name> -
删除存储账户:
bash
az storage account delete --name <storage_account_name> --resource-group <resource_group_name> --yes
4. 网络管理 (az network)
-
创建虚拟网络:
bash
az network vnet create \
--name <vnet_name> \
--resource-group <resource_group_name> \
--location <location_name> \
--address-prefix <address_prefix>例如:
bash
az network vnet create \
--name MyVNet \
--resource-group MyResourceGroup \
--location eastus \
--address-prefix 10.0.0.0/16 -
创建子网:
bash
az network vnet subnet create \
--name <subnet_name> \
--resource-group <resource_group_name> \
--vnet-name <vnet_name> \
--address-prefix <address_prefix>
例如:
bash
az network vnet subnet create \
--name MySubnet \
--resource-group MyResourceGroup \
--vnet-name MyVNet \
--address-prefix 10.0.1.0/24 -
创建网络安全组 (NSG):
bash
az network nsg create \
--name <nsg_name> \
--resource-group <resource_group_name> \
--location <location_name>
* 创建 NSG 规则:
bash
az network nsg rule create \
--resource-group <resource_group_name> \
--nsg-name <nsg_name> \
--name <rule_name> \
--protocol <protocol> \
--direction <direction> \
--source-address-prefixes <source_address_prefixes> \
--source-port-ranges <source_port_ranges> \
--destination-address-prefixes <destination_address_prefixes> \
--destination-port-ranges <destination_port_ranges> \
--access <access> \
--priority <priority>
例如, 允许SSH访问:
bash
az network nsg rule create \
--resource-group myResourceGroup \
--nsg-name myNSG \
--name allow_ssh \
--protocol tcp \
--direction inbound \
--source-address-prefixes "*" \
--source-port-ranges "*" \
--destination-address-prefixes "*" \
--destination-port-ranges 22 \
--access allow \
--priority 100
5. 其他常用命令
-
查询资源:
Azure CLI 提供了强大的查询功能,您可以使用 JMESPath 表达式查询资源的特定属性。bash
az vm list --resource-group <resource_group_name> --query "[].{Name:name, OS:storageProfile.osDisk.osType}" -
使用扩展:
Azure CLI 支持扩展,您可以使用扩展来添加额外的功能。bash
az extension add --name <extension_name>例如,安装
aks-preview
扩展:bash
az extension add --name aks-preview
列出已安装的扩展
bash
az extension list
移除扩展
az extension remove -n <extension_name>
-
交互模式:
Azure CLI 提供了一个交互模式,可以提供自动补全、命令说明等功能,方便用户使用。
bash
az interactive
五、高级用法与技巧
-
脚本编写:
将多个 Azure CLI 命令组合成脚本,可以实现自动化部署和管理。您可以将脚本保存为.sh
(Linux/macOS)或.ps1
(Windows)文件,并通过 shell 或 PowerShell 执行。 -
变量使用:
在脚本中,您可以使用变量来存储和引用值,使脚本更具灵活性和可维护性。“`bash
Linux/macOS
RESOURCE_GROUP=”MyResourceGroup”
VM_NAME=”MyVM”
az vm show –resource-group $RESOURCE_GROUP –name $VM_NAMEPowerShell
$ResourceGroup = “MyResourceGroup”
$VMName = “MyVM”
az vm show –resource-group $ResourceGroup –name $VMName
“` -
循环和条件语句:
在脚本中,您可以使用循环和条件语句来处理更复杂的逻辑。“`bash
Linux/macOS (bash)
for vm in $(az vm list –resource-group MyResourceGroup –query “[].name” -o tsv); do
az vm show –resource-group MyResourceGroup –name $vm
donePowerShell
foreach ($vm in (az vm list –resource-group MyResourceGroup –query “[].name” -o tsv)) {
az vm show –resource-group MyResourceGroup –name $vm
}
“` -
错误处理:
在脚本中,您应该考虑错误处理,以确保脚本在遇到错误时能够正常运行或提供有用的信息。 -
使用
--only-show-errors
参数
只显示错误信息
az vm create --name MyVm --resource-group MyResourceGroup --image ubuntults --only-show-errors
-
输出到文件
可以将Azure CLI命令的输出重定向到文件。
bash
az vm list --resource-group MyResourceGroup > vm_list.txt
追加到文件:
bash
az vm list --resource-group MyResourceGroup >> vm_list.txt
- 利用帮助系统
使用-h
或--help
参数获取命令帮助。
六、总结
Azure CLI 是一个功能强大且易于使用的工具,可以帮助您高效地管理 Azure 资源。通过本文的介绍,您应该已经掌握了 Azure CLI 的安装、配置和基础命令。建议您多加练习,熟悉各种命令的用法,并结合实际场景编写脚本,逐步提升您的 Azure 管理技能。随着您对 Azure CLI 的深入了解,您将能够更好地利用 Azure 云平台,构建和管理各种应用和服务。