OpenClaw on Azure Linux VM
This guide sets up an Azure Linux VM, applies Network Security Group (NSG) hardening, configures Azure Bastion (managed Azure SSH entry point), and installs OpenClaw.What you’ll do
- Deploy Azure compute and network resources with Azure Resource Manager (ARM) templates
- Apply Azure Network Security Group (NSG) rules so VM SSH is allowed only from Azure Bastion
- Use Azure Bastion for SSH access
- Install OpenClaw with the installer script
- Verify the Gateway
Before you start
You’ll need:- An Azure subscription with permission to create compute and network resources
- Azure CLI installed (see Azure CLI install steps if needed)
1) Sign in to Azure CLI
2) Register required resource providers (one-time)
Registered.
3) Set deployment variables
4) Select SSH key
Use your existing public key if you have one:5) Select VM size and OS disk size
Set VM and disk sizing variables:- Start smaller for light usage and scale up later
- Use more vCPU/RAM/OS disk size for heavier automation, more channels, or larger model/tool workloads
- If a VM size is unavailable in your region or subscription quota, pick the closest available SKU
6) Create the resource group
7) Deploy resources
This command applies your selected SSH key, VM size, and OS disk size.8) SSH into the VM through Azure Bastion
9) Install OpenClaw (in the VM shell)
10) Verify the Gateway
After onboarding completes:version: "latest" for convenience. If you need reproducible builds, pin a specific image version in infra/azure/templates/azuredeploy.json (you can list versions with az vm image list --publisher Canonical --offer ubuntu-24_04-lts --sku server --all -o table).
Next steps
- Set up messaging channels: Channels
- Pair local devices as nodes: Nodes
- Configure the Gateway: Gateway configuration
- For more details on OpenClaw Azure deployment with the GitHub Copilot model provider: OpenClaw on Azure with GitHub Copilot