Azure CLI入门:安装、配置与基础命令详解 – wiki基地

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 安装程序(推荐):

    1. 访问 Azure CLI 下载页面:https://aka.ms/installazurecliwindows
    2. 下载并运行 MSI 安装程序。
    3. 按照安装向导的提示完成安装。
    4. 重新启动命令提示符或 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(推荐):

    1. 安装 Homebrew(如果尚未安装):
      bash
      /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    2. 安装 Azure CLI:
      bash
      brew update && brew install azure-cli
  • 手动安装:
    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_NAME

    PowerShell

    $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
    done

    PowerShell

    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 云平台,构建和管理各种应用和服务。

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部