| name | azure-cli |
| description | Comprehensive Azure Cloud Platform management via command-line interface |
| license | MIT |
| metadata | {"author":"Dennis de Vaal <d.devaal@gmail.com>","version":"1.0.0","keywords":"azure,cloud,infrastructure,devops,iac,management,scripting"} |
| repository | https://github.com/Azure/azure-cli |
| compatibility | [{"platform":"macOS","min_version":"10.12"},{"platform":"Linux","min_version":"Ubuntu 18.04"},{"platform":"Windows","min_version":"Windows 10"}] |
Azure CLI Skill
Master the Azure command-line interface for cloud infrastructure management, automation, and DevOps workflows.
Azure CLI is Microsoft's powerful cross-platform command-line tool for managing Azure resources. This skill provides comprehensive knowledge of Azure CLI commands, authentication, resource management, and automation patterns.
What You'll Learn
Core Concepts
- Azure subscription and resource group architecture
- Authentication methods and credential management
- Resource Provider organization and registration
- Global parameters, output formatting, and query syntax
- Automation scripting and error handling
Major Service Areas (66 command modules)
- Compute: Virtual Machines, Scale Sets, Kubernetes (AKS), Containers
- Networking: Virtual Networks, Load Balancers, CDN, Traffic Manager
- Storage & Data: Storage Accounts, Data Lake, Cosmos DB, Databases
- Application Services: App Service, Functions, Container Apps
- Databases: SQL Server, MySQL, PostgreSQL, CosmosDB
- Integration & Messaging: Event Hubs, Service Bus, Logic Apps
- Monitoring & Management: Azure Monitor, Policy, RBAC, Cost Management
- AI & Machine Learning: Cognitive Services, Machine Learning
- DevOps: Azure DevOps, Pipelines, Extensions
Quick Start
Installation
macOS:
brew install azure-cli
Linux (Ubuntu/Debian):
curl -sL https://aka.ms/InstallAzureCliLinux | bash
Windows:
choco install azure-cli
# Or download MSI from https://aka.ms/InstallAzureCliWindowsMSI
Verify Installation:
az --version
az --help
First Steps
az login
az account list
az account set --subscription "My Subscription"
az group create -g myResourceGroup -l eastus
az group list
Essential Commands
Authentication & Accounts
az login
az login --service-principal -u APP_ID -p PASSWORD -t TENANT_ID
az login --identity
az logout
az account show
az account list
az account set --subscription SUBSCRIPTION
Global Flags (Use with Any Command)
--subscription ID
--resource-group -g RG
--output -o json|table|tsv|yaml
--query JMESPATH_QUERY
--verbose -v
--debug
--help -h
Resource Groups
az group list
az group create -g RG -l LOCATION
az group delete -g RG
az group show -g RG
az group update -g RG --tags key=value
Virtual Machines (Compute)
az vm create -g RG -n VM_NAME --image UbuntuLTS
az vm list -g RG
az vm show -g RG -n VM_NAME
az vm start -g RG -n VM_NAME
az vm stop -g RG -n VM_NAME
az vm restart -g RG -n VM_NAME
az vm delete -g RG -n VM_NAME
Storage Operations
az storage account create -g RG -n ACCOUNT --sku Standard_LRS
az storage account list
az storage container create --account-name ACCOUNT -n CONTAINER
az storage blob upload --account-name ACCOUNT -c CONTAINER -n BLOB -f LOCAL_FILE
az storage blob download --account-name ACCOUNT -c CONTAINER -n BLOB -f LOCAL_FILE
Azure Kubernetes Service (AKS)
az aks create -g RG -n CLUSTER --node-count 2
az aks get-credentials -g RG -n CLUSTER
az aks list
az aks show -g RG -n CLUSTER
az aks delete -g RG -n CLUSTER
Common Patterns
Pattern 1: Output Formatting
az vm list --query "[].{name: name, state: powerState}"
az vm list --query "[].name" -o tsv
az vm list --query "[?powerState=='VM running'].name"
Pattern 2: Automation & Scripting
#!/bin/bash
set -e
VM_ID=$(az vm create \
-g myRG \
-n myVM \
--image UbuntuLTS \
--query id \
--output tsv)
echo "Created VM: $VM_ID"
az vm show --ids "$VM_ID" --query provisioningState
Pattern 3: Batch Operations
az vm list -g myRG -d --query "[].id" -o tsv | xargs az vm delete --ids
az resource list --tag env=production
Pattern 4: Using Defaults
az configure --defaults group=myRG subscription=mySubscription location=eastus
az vm create -n myVM --image UbuntuLTS
Helper Scripts
This skill includes helper bash scripts for common operations:
- azure-vm-status.sh — Check VM status across subscription
- azure-resource-cleanup.sh — Identify and remove unused resources
- azure-storage-analysis.sh — Analyze storage account usage and costs
- azure-subscription-info.sh — Get subscription quotas and limits
- azure-rg-deploy.sh — Deploy infrastructure with monitoring
Usage:
./scripts/azure-vm-status.sh -g myResourceGroup
./scripts/azure-storage-analysis.sh --subscription mySubscription
Advanced Topics
Output Querying with JMESPath
Azure CLI supports powerful output filtering using JMESPath:
az vm list --query "sort_by([], &name)"
az vm list --query "[?location=='eastus' && powerState=='VM running'].name"
az vm list --query "length([])"
Error Handling
az vm create -g RG -n VM --image UbuntuLTS
if [ $? -eq 0 ]; then
echo "VM created successfully"
else
echo "Failed to create VM"
exit 1
fi
Authentication Methods
Service Principal (Automation):
az login --service-principal \
--username $AZURE_CLIENT_ID \
--password $AZURE_CLIENT_SECRET \
--tenant $AZURE_TENANT_ID
Managed Identity (Azure Resources):
az login --identity
Token-based (CI/CD):
echo "$AZURE_ACCESS_TOKEN" | az login --service-principal -u $AZURE_CLIENT_ID --password-stdin --tenant $AZURE_TENANT_ID
Key Resources
Tips & Tricks
-
Enable Tab Completion:
eval "$(az completion init zsh)"
eval "$(az completion init bash)"
-
Find Commands Quickly:
az find "create virtual machine"
-
Use --no-wait for Long Operations:
az vm create -g RG -n VM --image UbuntuLTS --no-wait
-
Save Frequently Used Parameters:
az configure --defaults group=myRG location=eastus
-
Combine with Other Tools:
az vm list | jq '.[] | select(.powerState == "VM running") | .name'
az storage account list --query "[].name" -o tsv | xargs -I {} az storage account show -g RG -n {}
Next Steps
- Review references/REFERENCE.md for comprehensive command documentation
- Explore helper scripts in the
scripts/ directory
- Practice with non-production resources first
- Review Azure best practices and cost optimization strategies
Version: 1.0.0
License: MIT
Compatible with: Azure CLI v2.50+, Azure Subscription