I recently left my Windows-centric comfort zone a bit and took a journey into Linux-land to see how I could get an ASP .NET 5 application building on a Linux machine. This was a surprisingly tricky process, so I figured I would blog about what I did so that other people could get up and running easily.
This involves some set up on the TFS side, as well as installing a whole bunch of stuff on a Linux machine, so I hope you have your SSH client of choice ready to go. I'm going to break this down into a few blog posts:
- Setting up TFS
- Installing and configuring the node.js build agent
- Installing the Linux .NET execution environment (DNX)
- Configuring our first build
Setting up TFS
First, we need to set up TFS. I'll be using some server and account names throughout the rest of this, so let me define them:
- IC-TFS-AT-01 is our TFS app tier
- IC-TFS-BA-03Lin is our Linux build agent
- TFS-BUILD is our build service account
Now, on to the process:
- Install TFS 2015. That shouldn't be a surprise. :)
- Linux doesn't natively support Active Directory, and TFS uses AD authentication by default, so we'll need to take some steps to ensure that our Linux machine can authenticate against our TFS app tier. On VSO, we could use access tokens or alternate credentials, but those aren't options in on-premise TFS. On your TFS 2015 App tier, open IIS and enable Basic Authentication on the /tfs/ virtual directory.If you're not using HTTPS, be aware that Basic auth credentials are transmitted in plaintext. If you go this route, I strongly recommend using HTTPS.
IIS TFS Virtual Directory
- Configure an Agent Pool. I put my Linux machine in a separate agent pool, although you don't necessarily have to do that if you don't want. To make a new agent pool, go to the Control Panel in TFS web access at the server level and click on the "Agent Pool" tab. Make sure your build service account is an Agent Pool Service Account.
Easy so far, right? In the next post, we'll discuss how to set up your build agent and connect it to TFS.