Azure Resource Manager templates deploy resources into a resource group. Create a new resource group to contain your Cobalt 100 VM and its associated resources:
az group create --name cobalt-rg --location eastus
Replace eastus with your preferred Azure region. To see available regions that support Cobalt 100 VMs, query Azure for VM SKUs and filter for the Dpsv6 series:
az vm list-skus --location eastus --size Standard_D --all --output table | grep "ps_v6"
The output is similar to:
virtualMachines eastus Standard_D16ps_v6 2,3 None
virtualMachines eastus Standard_D2ps_v6 2,3 None
virtualMachines eastus Standard_D32ps_v6 2,3 None
virtualMachines eastus Standard_D48ps_v6 2,3 None
virtualMachines eastus Standard_D4ps_v6 2,3 None
virtualMachines eastus Standard_D64ps_v6 2,3 None
virtualMachines eastus Standard_D8ps_v6 2,3 None
virtualMachines eastus Standard_D96ps_v6 2,3 None
The template requires several parameters for deployment. You can provide these values interactively or use a parameters file.
First, read your SSH public key:
cat ~/.ssh/azure_cobalt_key.pub
Copy the output, which you’ll use as the adminPublicKey parameter.
Deploy the template using the Azure CLI. The command prompts you to enter parameter values:
az deployment group create \
--resource-group cobalt-rg \
--template-file cobalt-vm-template.json \
--parameters projectName=cobaltdemo \
adminUsername=azureuser \
adminPublicKey="<your-ssh-public-key>"
Replace <your-ssh-public-key> with the output from the cat command above.
The deployment takes approximately two to three minutes. Azure CLI displays progress and shows you when the deployment completes.
For repeated deployments or automation, create a parameters file named cobalt-vm-parameters.json:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"projectName": {
"value": "cobaltdemo"
},
"adminUsername": {
"value": "azureuser"
},
"adminPublicKey": {
"value": "ssh-rsa AAAAB3NzaC1yc2EAAAA... your-email@example.com"
},
"vmSize": {
"value": "Standard_D4ps_v6"
}
}
}
Replace the adminPublicKey value with your actual SSH public key.
Deploy using the parameters file:
az deployment group create \
--resource-group cobalt-rg \
--template-file cobalt-vm-template.json \
--parameters @cobalt-vm-parameters.json
Check the deployment status:
az deployment group show \
--resource-group cobalt-rg \
--name cobalt-vm-template \
--query properties.provisioningState
The output displays "Succeeded" when the deployment completes.
List the resources created in the resource group:
az resource list --resource-group cobalt-rg --output table
The output is similar to:
Name ResourceGroup Location Type Status
------------------------------------------------------- --------------- ---------- --------------------------------------- ---------
cobaltdemo-ip cobalt-rg eastus Microsoft.Network/publicIPAddresses Succeeded
default-nsg cobalt-rg eastus Microsoft.Network/networkSecurityGroups Succeeded
cobaltdemo-nsg cobalt-rg eastus Microsoft.Network/networkSecurityGroups Succeeded
cobaltdemo-vnet cobalt-rg eastus Microsoft.Network/virtualNetworks Succeeded
cobaltdemo-nic cobalt-rg eastus Microsoft.Network/networkInterfaces Succeeded
cobaltdemo-vm cobalt-rg eastus Microsoft.Compute/virtualMachines Succeeded
cobaltdemo-vm_OsDisk_1_a3e13c940d07463cace48cfd1458a151 COBALT-RG eastus Microsoft.Compute/disks Succeeded
The output shows the resources created: virtual machine, network interface, public IP address resource, virtual network, network security groups, and OS disk.
Get the public IP address to connect to your VM:
az vm show \
--resource-group cobalt-rg \
--name cobaltdemo-vm \
--show-details \
--query publicIps \
--output tsv
Save this IP address, because you’ll use it to connect via SSH.
The public IP address is dynamically allocated and won’t be available until the VM is fully running. If the command returns empty, wait a minute and try again.
You’ve deployed an Arm-based Cobalt 100 VM using an Azure Resource Manager template. The deployment includes network infrastructure with security groups, a public IP address, and a VM running Ubuntu 24.04 LTS.
Next, you’ll connect to your VM and verify the Arm64 architecture.