Skip to content

Latest commit

 

History

History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

README.md

display_name Azure VM (Linux)
description Provision Azure VMs as Coder workspaces
icon ../../../site/static/icon/azure.png
maintainer_github coder
verified true
tags
vm
linux
azure

Remote Development on Azure VMs (Linux)

Provision Azure Linux VMs as Coder workspaces with this example template.

Prerequisites

Authentication

This template assumes that coderd is run in an environment that is authenticated with Azure. For example, run az login then az account set --subscription=<id> to import credentials on the system and user running coderd. For other ways to authenticate, consult the Terraform docs.

Architecture

This template provisions the following resources:

  • Azure VM (ephemeral, deleted on stop)
  • Managed disk (persistent, mounted to /home/coder)
  • Resource group, virtual network, subnet, and network interface (persistent, required by the managed disk and VM)

What happens on stop

When a workspace is stopped, only the VM is destroyed. The managed disk, resource group, virtual network, subnet, and network interface all persist. This is by design. The managed disk retains your /home/coder data across workspace restarts, and the other resources remain because the disk depends on them.

This means you will see these Azure resources in your subscription even when a workspace is stopped. This is expected behavior.

What happens on delete

When a workspace is deleted, all resources are destroyed, including the resource group, networking resources, and managed disk.

Workspace restarts

Since the VM is ephemeral, any tools or files outside of the home directory are not persisted across restarts. To pre-bake tools into the workspace (e.g. python3), modify the VM image, or use a startup script. Alternatively, individual developers can personalize their workspaces with dotfiles.

Note

This template is designed to be a starting point! Edit the Terraform to extend the template to support your use case.