One of the things that really got me exited about TFS 2015 was the cross platform build capability, and that was the first thing that I started to play with as soon as I got hold of the RC.
Interestingly enough, in VSO it is fairly easy to setup when you have the "alternate credentials" on VSO, but, as I was to discover, there are a few more things that you need to do before you can get it working on-prem.
So with my TFS server and newly installed Ubuntu box ready, I started the xplat (pronounced "cross plat(form)" if you were wondering) configuration. The install was fairly straight forward as per the steps indicated. Then came the configuration.
The first thing the vsoagent configuration asks for is an account to run the xplat agent under. Linux does not play well in an Active Directory environment, and I have spent waaayy to much of my life trying to get linux working on AD. This hinted towards authentication problems…
But there is a Solution
VSO has the concept of alternate credentials, which is basically a "Basic Authentication" mechanism. What we need to do on-prem is to enable this type of behaviour.
- Log onto your TFS Server and install Basic auth on IIS
- Go to the TFS application in IIS (Sites\Team Foundation Server\tfs) and enable basic auth
- Edit and set the domain and realm to the domain used for authentication
Once you have the authentication mechanisms setup you need to pick the account that the agent is going to run under and assign the correct rights in TFS and in the build pool. To set the rights for the build pool you need to
- Navigate to TFS server web access admin screen (http://<<server>>:8080/tfs/_admin)
- Go to the "Agent Pools" tab and either create a new pool or select the default pool
- Then assign the account that the agent is going to run under into the "Agent Pool Service Account"
Not doing this may give you a "Failed Request: Forbidden (403)" error when you try and run the agent
3) Boot her up…
Finally you need to "boot her up". If you have followed the steps outlined here, you should be able to run "node vsoagent" in the agent folder of the newly "installed" agent and you should see something like this beauty..
and "thar she blows"..
Please note that it… .. use at own risk