<p>I hit this question trying desperately to figure out why Visual Studio wasn't appearing as a capability.</p>
<p>It turns out my installation of Visual Studio on the build machine required a restart.</p>
<p>However because I has installed the Azure Pipeline agent <em>before</em> restarting the machine, the capability wasn't registered with Azure DevOps, so subsequent restarts didn't help.</p>
<p>I had to uninstall the azure pipelines agent from the build machine and remove the agent from my pool. When I reinstalled the agent (after a reboot of the machine) then the Visual Studio capability was present.</p>

CC BY-SA 4.0
2022-01-20T10:59:49.547Z
2022-01-20T10:59:49.547Z
ste-fu
<p>Broadly speaking, you add capabilities by installing software on the agent server. For example to get the Node capability, you should install <a href="https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions" rel="nofollow noreferrer">Node.js</a>.</p>
<p>Note that the way the capability is recognised is by environment variables; so you need to make sure that, after installing Node.js, there is an environment variable called <em>Node</em>, so the agent will know that it does have this capability.</p>

CC BY-SA 4.0
2021-12-20T18:35:50.167Z
2021-12-20T18:35:50.167Z
Vince Bowdren
<p>I took over admin of our dev environment, found out our Azure Pipelines Build Agent is running on the computer of an employee that quit, under his name. Trying to get a pipeline running on an Unbuntu box we have. Also, last time I touched Linux was in college about 15 years ago.</p>
<p>Running systemctl status shows that the Agent is active (running), but it isn't picking up any jobs.</p>
<p>I have done enough research to learn that the new Agent is missing Capabilities. MSBuild, Node, VisualStudio, SqlPackage, and more.</p>
<p>What I can't figure out is how to add those Capabilities to the Linux Agent.
If it helps, we are deploying EF Core 3.1, Angular 12, Vue 3, and using EF Migrations.</p>

CC BY-SA 4.0
2021-11-19T12:23:29.283Z
Do you have to continue using that box? If you can, update your pipeline to use a Microsoft hosted agent. If you really need a self hosted agent then it would probably be best to build a new one running on a proper server managed by the company.
Aquila Sands
CC BY-SA 4.0
2021-11-20T16:33:49.130Z
Small startup, we had a server sitting in a room from an acquisition, no Windows server license. I figured if I can do it for free on linux, then why not. The only other option is to run it from my local computer, just like the last guy, but under my credentials. I don't want to do that.
mmeasor
CC BY-SA 4.0
2021-12-06T13:10:17.217Z
If you are using Azure DevOps Services (cloud) then you get 1800 minutes free per month for a Microsoft Hosted Agent. If you are using Azure DevOps Server (on-prem) then you could use a Docker image https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/docker?view=azure-devops#linux and use a service account rather than your own credentials. Try to get this setup on a proper server rather than your own PC though.
Aquila Sands
<azure-pipelines><ubuntu>
Azure Pipeline Ubuntu 20.04 agent not picking up jobs
mmeasor
# Azure Pipeline Ubuntu 20.04 agent not picking up jobs

(Asked by: username_0 on 2021-11-18)

I took over admin of our dev environment, found out our Azure Pipelines Build Agent is running on the computer of an employee that quit, under his name. Trying to get a pipeline running on an Unbuntu box we have. Also, last time I touched Linux was in college about 15 years ago.

Running systemctl status shows that the Agent is active (running), but it isn't picking up any jobs.

I have done enough research to learn that the new Agent is missing Capabilities. MSBuild, Node, VisualStudio, SqlPackage, and more.

What I can't figure out is how to add those Capabilities to the Linux Agent.
If it helps, we are deploying EF Core 3.1, Angular 12, Vue 3, and using EF Migrations.

**Tags:** azure-pipelines, ubuntu

> **Comments:**
> **username_1**: Do you have to continue using that box? If you can, update your pipeline to use a Microsoft hosted agent. If you really need a self hosted agent then it would probably be best to build a new one running on a proper server managed by the company.  
> **username_0**: Small startup, we had a server sitting in a room from an acquisition, no Windows server license. I figured if I can do it for free on linux, then why not. The only other option is to run it from my local computer, just like the last guy, but under my credentials. I don't want to do that.  
> **username_1**: If you are using Azure DevOps Services (cloud) then you get 1800 minutes free per month for a Microsoft Hosted Agent. If you are using Azure DevOps Server (on-prem) then you could use a Docker image https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/docker?view=azure-devops#linux and use a service account rather than your own credentials. Try to get this setup on a proper server rather than your own PC though.  

---

## 2 answers

### Answer by username_2 on 2022-01-20. Score: 1

I hit this question trying desperately to figure out why Visual Studio wasn't appearing as a capability.

It turns out my installation of Visual Studio on the build machine required a restart.

However because I has installed the Azure Pipeline agent *before* restarting the machine, the capability wasn't registered with Azure DevOps, so subsequent restarts didn't help.

I had to uninstall the azure pipelines agent from the build machine and remove the agent from my pool. When I reinstalled the agent (after a reboot of the machine) then the Visual Studio capability was present.


---

### Answer by username_3 on 2021-12-20. Score: 0

Broadly speaking, you add capabilities by installing software on the agent server. For example to get the Node capability, you should install [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions).

Note that the way the capability is recognised is by environment variables; so you need to make sure that, after installing Node.js, there is an environment variable called *Node*, so the agent will know that it does have this capability.


---

