Get the FREE Ultimate OpenClaw Setup Guide →
npx machina-cli add skill chaterm/terminal-skills/azure-cli --openclaw
Files (1)
SKILL.md
6.2 KB

Azure CLI 操作

概述

Azure 资源管理、AKS、存储操作等技能。

配置与认证

# 登录
az login
az login --use-device-code          # 设备代码登录
az login --service-principal -u <app-id> -p <password> --tenant <tenant-id>

# 查看账户
az account show
az account list --output table

# 切换订阅
az account set --subscription "subscription-name"
az account set --subscription "subscription-id"

# 查看当前配置
az configure --list-defaults

# 设置默认值
az configure --defaults group=myResourceGroup location=eastus

资源组

# 列出资源组
az group list --output table

# 创建资源组
az group create --name myResourceGroup --location eastus

# 删除资源组
az group delete --name myResourceGroup --yes --no-wait

# 查看资源组中的资源
az resource list --resource-group myResourceGroup --output table

虚拟机

VM 管理

# 列出 VM
az vm list --output table
az vm list --resource-group myResourceGroup --output table

# 创建 VM
az vm create \
    --resource-group myResourceGroup \
    --name myVM \
    --image Ubuntu2204 \
    --admin-username azureuser \
    --generate-ssh-keys \
    --size Standard_B2s

# 启动/停止 VM
az vm start --resource-group myResourceGroup --name myVM
az vm stop --resource-group myResourceGroup --name myVM
az vm deallocate --resource-group myResourceGroup --name myVM
az vm restart --resource-group myResourceGroup --name myVM

# 删除 VM
az vm delete --resource-group myResourceGroup --name myVM --yes

# 查看 VM 详情
az vm show --resource-group myResourceGroup --name myVM
az vm get-instance-view --resource-group myResourceGroup --name myVM

VM 操作

# 获取公网 IP
az vm list-ip-addresses --resource-group myResourceGroup --name myVM --output table

# 打开端口
az vm open-port --resource-group myResourceGroup --name myVM --port 80

# 调整大小
az vm resize --resource-group myResourceGroup --name myVM --size Standard_D4s_v3

# 运行命令
az vm run-command invoke \
    --resource-group myResourceGroup \
    --name myVM \
    --command-id RunShellScript \
    --scripts "apt-get update && apt-get install -y nginx"

存储账户

账户管理

# 列出存储账户
az storage account list --output table

# 创建存储账户
az storage account create \
    --name mystorageaccount \
    --resource-group myResourceGroup \
    --location eastus \
    --sku Standard_LRS

# 获取连接字符串
az storage account show-connection-string \
    --name mystorageaccount \
    --resource-group myResourceGroup

# 获取密钥
az storage account keys list \
    --account-name mystorageaccount \
    --resource-group myResourceGroup

Blob 操作

# 设置环境变量
export AZURE_STORAGE_CONNECTION_STRING="..."

# 创建容器
az storage container create --name mycontainer

# 列出容器
az storage container list --output table

# 上传文件
az storage blob upload \
    --container-name mycontainer \
    --name myblob \
    --file ./local-file.txt

# 下载文件
az storage blob download \
    --container-name mycontainer \
    --name myblob \
    --file ./downloaded-file.txt

# 列出 blob
az storage blob list --container-name mycontainer --output table

# 删除 blob
az storage blob delete --container-name mycontainer --name myblob

# 生成 SAS URL
az storage blob generate-sas \
    --container-name mycontainer \
    --name myblob \
    --permissions r \
    --expiry 2024-12-31 \
    --full-uri

AKS 集群

# 列出集群
az aks list --output table

# 创建集群
az aks create \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --node-count 3 \
    --node-vm-size Standard_D2s_v3 \
    --generate-ssh-keys

# 获取凭证
az aks get-credentials --resource-group myResourceGroup --name myAKSCluster

# 查看集群
az aks show --resource-group myResourceGroup --name myAKSCluster

# 扩缩节点
az aks scale \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --node-count 5

# 升级集群
az aks get-upgrades --resource-group myResourceGroup --name myAKSCluster
az aks upgrade --resource-group myResourceGroup --name myAKSCluster --kubernetes-version 1.28.0

# 删除集群
az aks delete --resource-group myResourceGroup --name myAKSCluster --yes

App Service

# 列出 App Service 计划
az appservice plan list --output table

# 创建 App Service 计划
az appservice plan create \
    --name myAppServicePlan \
    --resource-group myResourceGroup \
    --sku B1 \
    --is-linux

# 创建 Web App
az webapp create \
    --resource-group myResourceGroup \
    --plan myAppServicePlan \
    --name myWebApp \
    --runtime "NODE:18-lts"

# 部署代码
az webapp deployment source config-zip \
    --resource-group myResourceGroup \
    --name myWebApp \
    --src app.zip

# 查看日志
az webapp log tail --resource-group myResourceGroup --name myWebApp

常见场景

场景 1:批量操作资源

# 列出所有 VM 并停止
az vm list --query "[].{name:name, rg:resourceGroup}" -o tsv | \
while read name rg; do
    az vm deallocate --resource-group "$rg" --name "$name" --no-wait
done

场景 2:导出资源模板

# 导出资源组模板
az group export --name myResourceGroup > template.json

# 部署模板
az deployment group create \
    --resource-group myResourceGroup \
    --template-file template.json \
    --parameters @parameters.json

场景 3:监控与日志

# 查看活动日志
az monitor activity-log list \
    --resource-group myResourceGroup \
    --start-time 2024-01-01 \
    --output table

# 查看指标
az monitor metrics list \
    --resource /subscriptions/.../resourceGroups/.../providers/Microsoft.Compute/virtualMachines/myVM \
    --metric "Percentage CPU" \
    --interval PT1H

故障排查

问题排查方法
登录失败az login --use-device-code
权限不足检查 RBAC 角色分配
资源找不到检查订阅、资源组
配额超限az vm list-usage --location eastus
# 调试模式
az vm list --debug

# 查看帮助
az vm --help
az vm create --help

Source

git clone https://github.com/chaterm/terminal-skills/blob/main/cloud-cli/azure-cli/SKILL.mdView on GitHub

Overview

本技能覆盖 Azure 的基本和常用操作,包括资源管理、AKS、存储等。通过 Azure CLI(az 命令)实现创建、查询、修改和运维自动化,帮助快速上手云端资源管理。

How This Skill Works

用户通过 az 子命令对资源组、虚拟机、存储账户、AKS 等资源进行操作。技能内容以示例脚本和分组命令呈现,便于在脚本或交互式终端中执行。

When to Use It

  • 需要认证、查看账户信息并切换订阅时
  • 需创建、列出或删除资源组及其资源
  • 要部署、管理或操作虚拟机(启动、停止、运行命令)
  • 需要管理存储账户、容器、Blob、以及生成 SAS 链接
  • 要创建、配置或维护 AKS 集群(获取凭证、扩缩和升级)

Quick Start

  1. Step 1: az login
  2. Step 2: az account set --subscription "subscription-name"
  3. Step 3: 使用 az group/vm/storage/aks 等命令开始管理资源

Best Practices

  • 先执行 az login,必要时使用 az login --use-device-code 或服务主体登录
  • 对输出使用 --output table/--output json,便于人工查看与脚本解析
  • 使用 az account set 设置目标订阅,避免误操作
  • 在执行 delete 等高风险操作时添加 --yes、--no-wait 选项
  • 把常用配置(区域、资源组、输出格式)写入 az configure --defaults 提高一致性

Example Use Cases

  • 登录、查看账户并切换订阅:az login; az account show; az account set --subscription '...'
  • 列出并创建资源组:az group list --output table; az group create --name myRG --location eastus
  • 创建并管理 VM:az vm create --resource-group myRG --name myVM --image Ubuntu2204 --admin-username azureuser --generate-ssh-keys --size Standard_B2s; az vm start --resource-group myRG --name myVM; az vm stop --resource-group myRG --name myVM; az vm delete --resource-group myRG --name myVM --yes
  • 存储账户与 Blob 操作:az storage account create --name mystorageaccount --resource-group myRG --location eastus --sku Standard_LRS; az storage blob upload --container-name mycontainer --name myblob --file ./local-file.txt; az storage blob generate-sas --container-name mycontainer --name myblob --permissions r --expiry 2024-12-31 --full-uri
  • AKS 集群操作:az aks create --resource-group myRG --name myAKSCluster --node-count 3 --node-vm-size Standard_D2s_v3 --generate-ssh-keys; az aks get-credentials --resource-group myRG --name myAKSCluster; az aks scale --resource-group myRG --name myAKSCluster --node-count 5; az aks delete --resource-group myRG --name myAKSCluster

Frequently Asked Questions

Add this skill to your agents

Related Skills

Sponsor this space

Reach thousands of developers