Mastering Azure CLI: Complete Guide to VM Management

Updated Last updated: April 14, 2026 · Originally published: May 24, 2022

Why Azure CLI is a Major improvement for VM Management

📌 TL;DR: Why Azure CLI is a Major improvement for VM Management Imagine this scenario: your team is facing a critical deadline, and a cloud-based virtual machine (VM) needs to be deployed and configured instantly.
🎯 Quick Answer: Manage Azure VMs with az CLI using: az vm create to provision, az vm start/stop/restart for power control, az vm list for inventory, and az vm resize to change SKU. Add –no-wait for async operations on large fleets.

Imagine this scenario: your team is facing a critical deadline, and a cloud-based virtual machine (VM) needs to be deployed and configured instantly. Clicking through the Azure portal is one option, but it’s time-consuming and prone to human error. Real professionals use the az CLI—not just because it’s faster, but because it offers precision, automation, and unparalleled control over your Azure resources.

I’ll walk you through the essentials of managing Azure VMs using the az CLI. From deploying your first VM to troubleshooting common issues, you’ll learn actionable techniques to save time and avoid costly mistakes. Whether you’re a beginner or an advanced user, this guide will enhance your cloud management skills.

Benefits of Using Azure CLI for VM Management

Before diving into the specifics, let’s discuss why the Azure CLI is considered a big improvement for managing Azure virtual machines.

  • Speed and Efficiency: CLI commands are typically faster than navigating through the Azure portal. With just a few lines of code, you can accomplish tasks that might take minutes in the GUI.
  • Automation: Azure CLI commands can be integrated into scripts, enabling you to automate repetitive tasks like VM creation, scaling, and monitoring.
  • Precision: CLI commands allow you to specify exact configurations, reducing the risk of misconfigurations that could occur when using a graphical interface.
  • Repeatability: Because commands can be saved and reused, Azure CLI ensures consistency when deploying resources across multiple environments.
  • Cross-Platform Support: Azure CLI runs on Windows, macOS, and Linux, making it accessible to a wide range of users and development environments.
  • Script Integration: The CLI’s output can be easily parsed and used in other scripts, enabling advanced workflows and integration with third-party tools.

Now that you understand the benefits, let’s get started with a hands-on guide to managing Azure VMs with the CLI.

Step 1: Setting Up a Resource Group

Every Azure resource belongs to a resource group, which acts as a logical container. Starting with a well-organized resource group is critical for managing and organizing your cloud infrastructure effectively. Think of resource groups as folders that hold all the components of a project, such as virtual machines, storage accounts, and networking resources.

az group create --name MyResourceGroup --location eastus

This command creates a resource group named MyResourceGroup in the East US region.

  • Pro Tip: Always choose a region close to your target user base to minimize latency. Azure has data centers worldwide, so select the location strategically.
  • Warning: Resource group names must be unique within your Azure subscription. Attempting to reuse an existing name will result in an error.

Resource groups are also useful for managing costs. By grouping related resources together, you can easily track and analyze costs for a specific project or workload.

Step 2: Deploying a Virtual Machine

With your resource group in place, it’s time to launch a virtual machine. For this example, we’ll create an Ubuntu 20.04 LTS instance—a solid choice for most workloads. The Azure CLI simplifies the deployment process, allowing you to specify all the necessary parameters in one command.

az vm create \
 --resource-group MyResourceGroup \
 --name MyUbuntuVM \
 --image UbuntuLTS \
 --admin-username azureuser \
 --generate-ssh-keys

This command performs the following tasks:

  • Creates a VM named MyUbuntuVM within the specified resource group.
  • Specifies an Ubuntu LTS image as the operating system.
  • Generates SSH keys automatically, saving you from the hassle of managing passwords.

The simplicity of this command masks its power. Behind the scenes, Azure CLI provisions the VM, configures networking, and sets up storage, all in a matter of minutes.

Pro Tip: Use descriptive resource names (e.g., WebServer01) to make your infrastructure easier to understand and manage.
Warning: Failing to specify --admin-username may result in unexpected defaults that could lock you out of your VM. Always set it explicitly.

Step 3: Managing the VM Lifecycle

Virtual machines aren’t static resources. To optimize costs and maintain reliability, you’ll need to manage their lifecycle actively. Common VM lifecycle operations include starting, stopping, redeploying, resizing, and deallocating.

Here are some common commands:

# Start the VM
az vm start --resource-group MyResourceGroup --name MyUbuntuVM

# Stop the VM (does not release resources)
az vm stop --resource-group MyResourceGroup --name MyUbuntuVM

# Deallocate the VM (releases compute resources and reduces costs)
az vm deallocate --resource-group MyResourceGroup --name MyUbuntuVM

# Redeploy the VM (useful for resolving networking issues)
az vm redeploy --resource-group MyResourceGroup --name MyUbuntuVM
  • Pro Tip: Use az vm deallocate instead of az vm stop to stop billing for compute resources when the VM is idle.
  • Warning: Redeploying a VM resets its network interface. Plan carefully to avoid unexpected downtime.

Azure CLI also allows you to resize your VM to match changing workload requirements. For example:

az vm resize \
 --resource-group MyResourceGroup \
 --name MyUbuntuVM \
 --size Standard_DS3_v2

The above command changes the VM size to a Standard_DS3_v2 instance. Always verify the new size’s compatibility with your region and workload requirements before resizing.

Step 4: Retrieving the VM’s Public IP Address

To access your VM, you’ll need its public IP address. The az vm show command makes this simple.

az vm show \
 --resource-group MyResourceGroup \
 --name MyUbuntuVM \
 --show-details \
 --query publicIps \
 --output tsv

This command extracts the VM’s public IP address in a tab-separated format, perfect for use in scripts or command chaining.

  • Pro Tip: Include the --show-details flag to get additional instance metadata alongside the public IP address.
  • Warning: If you don’t see a public IP address, it might not be enabled for the network interface. Check your network configuration or assign a public IP manually.

Step 5: Accessing the VM via SSH

Once you have the public IP address, connecting to your VM via SSH is straightforward. Replace <VM_PUBLIC_IP> with the actual IP address you retrieved earlier.

ssh azureuser@<VM_PUBLIC_IP>

Want to run commands remotely? For example, to check the VM’s uptime:

ssh azureuser@<VM_PUBLIC_IP> "uptime"
Pro Tip: Automate SSH access by adding your public key to the ~/.ssh/authorized_keys file on the VM.
Warning: Ensure your local SSH key matches the VM’s key. Mismatched keys will result in an authentication failure.

Step 6: Monitoring and Troubleshooting

Efficient VM management isn’t just about deployment—it’s also about monitoring and troubleshooting. The Azure CLI offers several commands to help you diagnose issues and maintain best performance.

View VM Status

az vm get-instance-view \
 --resource-group MyResourceGroup \
 --name MyUbuntuVM \
 --query instanceView.statuses

This command provides detailed information about the VM’s current state, including power status and provisioning state.

Check Resource Usage

az monitor metrics list \
 --resource /subscriptions/<subscription-id>/resourceGroups/MyResourceGroup/providers/Microsoft.Compute/virtualMachines/MyUbuntuVM \
 --metric "Percentage CPU" \
 --interval PT1H

Replace <subscription-id> with your Azure subscription ID. This command retrieves CPU usage metrics, helping you identify performance bottlenecks.

Troubleshooting Networking Issues

If your VM is unreachable, check its network configuration:

az network nic show \
 --resource-group MyResourceGroup \
 --name MyUbuntuVMNIC \
 --query "ipConfigurations[0].privateIpAddress"
  • Pro Tip: Use Network Watcher’s az network watcher test-connectivity command to diagnose connectivity issues end-to-end.

Quick Summary

  • The az CLI is an essential tool for fast, reliable Azure VM management, enabling automation and reducing human error.
  • Always start by organizing your resources into well-defined resource groups for easier management.
  • Use lifecycle commands like start, stop, and deallocate to optimize costs and ensure uptime.
  • Retrieve critical details such as public IP addresses and instance states using concise, scriptable commands.
  • Monitor performance metrics and troubleshoot issues proactively to maintain a solid cloud infrastructure.

Master these techniques, and you’ll manage Azure VMs like a seasoned pro—efficiently, reliably, and with confidence.

🛠 Recommended Resources:

Tools and books mentioned in (or relevant to) this article:

📋 Disclosure: Some links are affiliate links. If you purchase through these links, I earn a small commission at no extra cost to you. I only recommend products I have personally used or thoroughly evaluated.


📚 Related Articles

📊 Free AI Market Intelligence

Join Alpha Signal — AI-powered market research delivered daily. Narrative detection, geopolitical risk scoring, sector rotation analysis.

Join Free on Telegram →

Pro with stock conviction scores: $5/mo

Get Weekly Security & DevOps Insights

Join 500+ engineers getting actionable tutorials on Kubernetes security, homelab builds, and trading automation. No spam, unsubscribe anytime.

Subscribe Free →

Delivered every Tuesday. Read by engineers at Google, AWS, and startups.

Frequently Asked Questions

What is Mastering Azure CLI: Complete Guide to VM Management about?

Why Azure CLI is a Major improvement for VM Management Imagine this scenario: your team is facing a critical deadline, and a cloud-based virtual machine (VM) needs to be deployed and configured instan

Who should read this article about Mastering Azure CLI: Complete Guide to VM Management?

Anyone interested in learning about Mastering Azure CLI: Complete Guide to VM Management and related topics will find this article useful.

What are the key takeaways from Mastering Azure CLI: Complete Guide to VM Management?

Real professionals use the az CLI—not just because it’s faster, but because it offers precision, automation, and unparalleled control over your Azure resources. I’ll walk you through the essentials of

References

📧 Get weekly insights on security, trading, and tech. No spam, unsubscribe anytime.

Also by us: StartCaaS — AI Company OS · Hype2You — AI Tech Trends