Derek Coleman & Associates Inc logoDerek Coleman & Associates Inc

Home / Support / Azure DevOps Self-Hosted Agent on Ubuntu 24.04 LTS

Azure DevOps Self-Hosted Agent on Ubuntu 24.04 LTS — Support & Quick Start

Azure DevOps Self-Hosted Agent on Ubuntu 24.04 LTS — A pre-configured Azure Pipelines self-hosted agent: register it with your Azure DevOps organization and start running pipelines in minutes. Published by Derek Coleman & Associates Inc on the Azure Marketplace, deployed in your own Azure subscription.

At a glance

Application portsnone inbound (agent connects outbound)
Service(s)vsts.agent.* (installed by `svc.sh install`, run as root, after registration)
Configuration/home/azagent/azagent/ (config.sh; svc.sh appears after registration; runs as the `azagent` user, which has no sudo)
Logs/home/azagent/azagent/_diag/; journalctl -u 'vsts.agent.*'
VersionAzure Pipelines agent 4.273.0 (image 2026.928.1930); 4.275.0 from image 2026.1004.2208. Docker pre-installed for container jobs
PlatformMicrosoft Azure

Quick start

  1. Deploy from the Azure Marketplace (Get It Now → Create), choosing your SSH key at the Administration step.
  2. Allow inbound SSH (22) for yourself only — the agent itself needs no inbound ports.
  3. Register the agent with your organization as the azagent user (see First login below): ./config.sh with your Azure DevOps URL and a PAT, then `exit` and run svc.sh install + start as root from your admin account.
  4. Watch your first job land: the agent appears in your agent pool (Organization settings → Agent pools) within a minute of registration.

First login

  1. No web login exists. Register the agent as the azagent user: `sudo su - azagent`, `cd ~/azagent`, `./config.sh` (organization URL https://dev.azure.com/<org>, PAT with Agent Pools manage scope, pool name). `./config.sh --help` lists every option, including the unattended ones.
  2. Non-interactive form: `./config.sh --unattended --url https://dev.azure.com/<org> --auth pat --token <PAT> --pool <pool> --agent $(hostname) --acceptTeeEula --replace`.
  3. Leave the azagent shell with `exit`, then install and start the service from YOUR admin account: `sudo sh -c 'cd /home/azagent/azagent && ./svc.sh install azagent && ./svc.sh start'`. svc.sh must run as root from the agent directory, and azagent has no sudo — so `sudo ./svc.sh …` typed inside the azagent shell (what the login message said on images before 2026.1004.2208) fails. Upstream is explicit that the agent SERVICE must not run as root, which is why it runs as `azagent`.
  4. Zero-touch alternative: deploy the VM with the tags `AzdoUrl`, `AzdoPat` and `AzdoPool` and first boot runs exactly that unattended command for you. ⚠ A PAT stored in a VM tag is readable by anyone with reader access to the resource group — prefer hand registration, or a short-lived PAT you rotate.

Still stuck?

Email support@dcassociatesgroup.com (response within 1 business day) or send a message via the contact form. Include the offer name, VM size, region, and any log output — sudo journalctl -u <service> -n 100 usually tells the story.