Installing Team Foundation Server 2010 on Windows Home Server

Last October I posted about the fact that Microsoft’s Team Foundation Server 2010 was going to be shipping with a “Basic” configuration that more light weight and seen as more of a Visual SourceSafe replacement. In that post I also pointed out that it seemed possible to install this version on a Windows Home Server (WHS) and that it would be something I’d try. Well eventually I have got round to doing it and of course I’ve documented my approach. The benefits of TFS immense but out of the scope of this article but instead I’m covering the installation process.

It may have been technically possible to jump through some hoops and install TFS 2008 on your WHS box but the pre-requisites were heavy (including SharePoint and full SQL Server) and it was always seen as a complicated process. With the ‘basic’ configuration of TFS 2010 you can ignore SharePoint and SQL Reporting Services and it installs onto SQL Server 2008 Express (which it also installs for you).

A point worth mentioning is that TFS 2010 will not trash you existing web sites (important for Windows Home Servers) but will instead install its own site alongside any existing sites on the server. It is possible to then connect to TFS remotely via your WHS Remote Access domain name which is a very nifty feature.

Pre-Installation Considerations:

Basic Configuration: Whilst it’s possible to install the non-basic configurations I don’t see the point unless there is something specific that you want to take advantage of that’s not included in the basic configuration. For a light, easy installation and a nice minimal processing overhead on your WHS the ‘basic’ configuration is ideal. It also contains all the core features such as build automation, work item tracking and source control.

Location of SQL Server Data Files: By default the SQL Server data files are installed to the system drive under the program files location for SQL Server Express. As you add more and more content to TFS these files will naturally grow and so you need to consider up front whether you have the disk space to support this. Windows Home Server by default installs only a 20GB system partition which should have adequate space for the data files to grow, but if you have installed a lot of applications to your system drive this could be an issue.  To store the data files at an alternative location it is easier to install SQL Express 2008 manually prior to installing TFS 2010 (and configure the data file locations via the SQL setup). The TFS installation will then just reuse the SQL Express instance already installed. Alternatively you could install the data files on the WHS’s ‘Data’ drive (D drive) but personally I prefer to leave that drive well alone and let WHS’s ‘Drive Extender’ manage all the data in it’s Storage Pool. I did consider installing a new drive to my server, and not adding that to the storage pool, which would then be used for my data files. In the end I decided I had adequate space on the system drive and I could move the data files at a future point in time if required.

Build Controller: Part of the TFS installation/configuration includes the decision to install a Build Controller on the server. If you plan on running automated TFS builds then you’ll need to install this. I would strongly recommend you use the Team Build features of TFS as they are one of its key features but if you don’t want to automate builds or want to minimise the services running on your server then just skip that part.

Support: Whist WHS is really a Windows Server 2003 under the covers and TFS 2010 clearly supports Windows Server 2003, installing it on a Windows Home Server is not supported by Microsoft (or anyone else) and you do so at your own risk.

Steps:

You’ll need to Remote Desktop onto your server to run the installation interactively. The below screenshots show the key stages of the installation process. Luckily it’s mostly a matter of clicking ‘Next’:

whs_tfs_01 whs_tfs_02

Choose to install Team Foundation Server and the Build Service (if you plan to run automated builds on this server too). Don’t install the Server Proxy:

whs_tfs_04  whs_tfs_06

After much processing and a reboot it’s installed:

whs_tfs_07 whs_tfs_08

Once installed, it then launches the Configuration Centre and it’s at this point that you can choose the ‘Basic’ configuration. It will then install SQL Server Express or point to an existing SQL instance:

whs_tfs_10 whs_tfs_11 whs_tfs_12    whs_tfs_16 whs_tfs_17

Next you’re asked to configure the Build Service details:

whs_tfs_18 whs_tfs_19 whs_tfs_20 whs_tfs_21 whs_tfs_22    whs_tfs_26 whs_tfs_27

That’s it. You can launch the ‘Team Foundation Server Administration Console’ from the Start Menu which is a neat new tool enabling you to manage TFS from the server itself:

whs_tfs_29

Next Steps:

Connect via Visual Studio: Now it’s all up and running you can fire up Visual Studio and test that you can connect to the new Team Foundation Server by adding it to the list of servers in Team Explorer. You should be able to create new Team Projects, check in code and run builds just as you would on any other TFS server.

Enable Remote Access: To enable remote access to TFS so you can access your source code from remote locations you need to copy your client certificate from the Remote Access site and then add it to the TFS site. For instructions on how to do this see this excellent post by Jason Neave.

Backups: Call me paranoid but before I add anything important to this TFS server I want an automated backup procedure in place. Backing up TFS is really ‘just’ a matter of backing up the SQL Server databases on which TFS sits as that is the only source of its data. I say ‘just’ because it’s not as easy as it should be. A key point to note is that as TFS uses numerous databases it is critical to backup all of them at the same time so you don’t end up restoring unsynchronised databases. I have created an automated backup procedure using Windows PowerShell that I will share in a future post.

Conclusion:

It’s exciting to see a combination of two excellent products working together and I think this is another great way to add value to your Windows Home Server whilst enabling you to experiment with a quality ALM tool.

UPDATE: For WHS 2011 users check out my post on Installing TFS 2010 on Windows Home Server 2011.

Advertisement

14 Comments

  1. Bill Hertzing says:

    What great timing. After wiping my Vista OS and installing Server 2008 on one of my home computers, I was trying to decide if I wanted to ressurect my free Perforce installation (which I had installed on the Vista OS), or try TFS. I followed your lead and installed TFS on my Acer WHS server. I did find a couple of gotcha’s and a final show stopper.
    (1) As you mentioned – the location of the TFS data files was an issue for me. I knew I’d exceed my 20GB system partition. I had recently added a 2TB drive (great Amazon sale), so I used the WHS storage manager to remove the drive from the storage array, and then made it the G: drive and did a quick format, and I installed SQL Developer edition on my WHS and pointed it to the G: drive for data storage. Took about an hour.
    (2) Going through the TFS setup – it stopped and told me the SQL install didn’t have full-text indexing feature installed. So back to the SQL setup disk to install that feature. Took about another 45 minutes.
    (3) Yea! TFS installed, configured, and the Build Service installed and configured. (add about 15 minutes for building the tables). I added my WHS local userid to the TFS Projects administrators group.
    (4) over to Visual Studio on another computer – Set the SCCM plugin to TFS. Open up one of the VS solutions I’ve been working on. Right click the solution in the Solution Explorer, and chose the option to put it under TFS control. Get the dialog box to select the TFS server – put in the name of my WHS server… wait a bit… Yep, it found it! Asked me what Project Collection to use (and just showing the default ProjectCollection, because I had not created any thing new in TFS). I select the Default Project Collection. Oops- what’s this???!! A dialog saying I don’t have permission to add things to this project collection??? Another 15 minutes to find all the right dialogs and click away…
    (5) And here comes the showstopper… I have collected a number of computers of the last three decades, so years ago I went ahead and setup Active Directory using two old servers as Primary and Secondary domain controllers. Most of my home computers are in my AD – the exceptions being the Acer WHS and a new laptop running Windows 7 Home edition. WHS does not (without hacking) have the ability to join a domain. I’ve never felt the need to rebuild WHS and go through the hoops to make it “domain joinable” (Google can find you that info if you are interested). WHS in the workgroup “Workgroup” works just fine with my domain – it backs up the family’s computers (desktops in the domain and laptops both in and out of teh domain) every night, and all family members can access all the WHS shares I’ve created from any computer (just create local users on WHS with the same userid and password as their domain account – and your domain accounts access the WHS resources just fine.)

    But TFS seems more persnikity. I added my WHS local user to the TFS Project Administrators group (which should give it uber-rights to do anything, yes?), expecting/hoping the credentials passed from Visual Studio would map to the WHS-local user ID (I login to a domain computer and use Visual Studio using my domain ID), but appearently not. TFS says – “uh-uh – you don’t have permission!”.

    I was looking forward to evaluating TFS and see if the integration and ease of use beat Perforce, but I’m going to have to go back to my Perforce solution. Bummer.

    1. Rich Hewlett says:

      Bill,

      Sorry to hear you’ve had problems.

      Connecting from a Domain client to a workgroup TFS is supported and it should work as you describe. If you’re domain account name and password match a local user account on the server you will get access. See this link for confirmation: http://msdn.microsoft.com/en-us/library/ms252507.aspx

      From your description it sounds as though you are connecting to the server ok through Visual Studio but that TFS doesn’t recognise your domain account as having access to TFS projects. If you are in Visual Studio and you try to connect TFS but you don’t have access to connect to the server you should get a logon dialogue appear where you can key a different username/password to the one you have logged onto your PC with but that is valid on the server. It sounds like you are not getting this so basic connectivity is ok. You could try logging into the PC as a user that doesn’t have a corresponding user on the WHS server thus forcing this process. You should get the logon dialog and be able to key valid TFS/WHS account details.

      By default all local admins on your server will be added to the ‘Team Foundation Administrators’ group in TFS giving them access to do everything. This is a higher priviledge than the ‘Project Administrators Group’ you mention which only have admin rights over projects but not the collections. Make sure that you’re local WHS user is in this group for maximum rights in TFS.

      I hope this helps.

      Rich

      1. Jody says:

        Rich,

        I’m following your instructions here to try to get TFS 2011 Express Beta to install on WHS 2011 and I am having the same behavior this OP mentioned when he tried to connect from Visual Studio. I can confirm that my laptop’s login credentials match the credentials on the home server, but no matter what I do, I cannot get VS to allow me to create a team project. It blocks me with an error that says I do not have permission to do so, even though the server copy of my login is in the correct groups on the TFS install. Any thoughts on this?

      2. Rich Hewlett says:

        Hi Jody,

        I’ve not tried installing the new TFS 11 Express Beta on WHS yet and so haven’t hit this problem. You seem to be checking all the right things as I would suggest the problem is related to the local user on the server not matching your laptops user (which you have checked), or your local server user is not in the right TFS group (again which you have checked). In terms of groups I would make sure that your user is in both the TFS server level and project level groups and is not in any restrictive user groups.

        One way to confirm that your TFS server and local server permissions are ok is to install the TFS power tools and use the TFPT.exe command line tool to create the team project (there is a createproject command). If this works it will confirm the server services have the right access and also it will create the initial Team Project so you can try and connect again from your laptop and see if you can access the project. If you can then it might be a permission issue around specifically creating the project. I’m not sure if the 2010 power tools will work on TFS 11 but its worth trying. Alternatively you could install Team Explorer on the server to accomplish the same thing.

        Rich

      3. Rich Hewlett says:

        Jody,

        I’ve just seen this post from Buck Hodges regarding the same permissions error that you are getting. Are you using VS2010 to create the Team Project? This post suggests that you will need to use Visual Studio Team Explorer 11 Beta to avoid the misleading error.

        Permission error with creating a team project from VS 2010 on TFS 11 Beta

        I hope this helps.

        Rich

      4. Jody says:

        Wow, good to know. That’s exactly what I was trying to do. I guess that means that when it’s rolled out, a VS 2010 patch will need to be applied so it works against TFS 11.

        Thanks!

  2. Kent K says:

    Your link for how to do this on WHS 2011 references back to this page.

    1. Rich Hewlett says:

      Thank you for pointing that mistake out. I’ve corrected it now.

  3. When someone writes an post he/she keeps the image of a user in
    his/her mind that how a user can be aware of it. Thus that’s why this post is amazing.

    Thanks!

  4. Norine says:

    This website was… how do you say it? Relevant!! Finally I have found something which helped me.
    Appreciate it!

Comments are closed.