Once again, SSW is the first company I know of to make the move to TFS 2012 Update 1!
It took a few more steps than I thought would be needed. I’ll be going through the steps we took to upgrade our TFS in this blog post – if you follow this guide, it will be a snap.
Warning: Even though this is called an “update”, it represents a complete new version and therefore you’ll need to configure everything again!
The steps I took were:
- Screenshot our existing configuration
- Back up the databases and snapshot the servers
- Stop the TFS services
- Install TFS 2012 Update 1
- Configure TFS 2012 Update 1
- Test, test, test!
Before you start
Just as we did last time, the first step was to send an email letting everyone know there would be a TFS outage. See our Rules to Better Networking for an example of how to do it.
If you’re doing the upgrade, you’ll also need administrator access to the servers. Just as last time, I got promoted temporarily so I could do my work.
Preparation Steps – save your existing configuration
Once again, this is an incremental release so we can expect the configuration to be more or less identical. To make life easier for me, I opened the TFS Administration Console and took a screenshot of each setting. This ensures I don’t forget any of the settings. I referred back to these settings in step 5.
Once I’ve saved everything I need, we can get going on the install.
Preparation Steps – stopping the servers and backing up
- Review the Rules to Better TFS 2012 Migration to make sure what you need to do. In line with rule 4, I took the TFS server offline.
This is important because we don’t want any checkins or work item changes to come through while we’re halfway through the process. They may miss the upgrade!
- Use TFSServiceControl quiesce to stop all the agents.
Note: Once again I got a number of exceptions, but it seems after a retry it worked fine. The important parts are highlighted in yellow.
- Stop the relevant network services
- Verify that you can’t connect to the TFS server by trying to connect in Visual Studio
And that you can’t visit the TFS Web Access
- Use TFSServiceControl quiesce to stop all the agents.
- As per rule 5, it’s a good idea to run the DogFood Stats queries from Grant Holliday. Document the numbers so you can compare them after the upgrade to make sure you haven’t lost anything. If you have more than one Project Collection, make sure you do this over every Project Collection you care about.
- Back up the TFS and Reporting Server databases as per rule number 6.
We have a few relevant databases because we have a number of Project Collections.
Installing TFS 2012 Update 1
- Because we’re installing from an ISO rather than a physical CD, we mount the ISO using SlySoft’s Virtual CloneDrive (or your favourite alternative).
- Run tfs_server.exe from the installation disk or ISO.
- Accept the license terms and click Install Now.
- Watch the progress with excitement and trepidation (and coffee)
Configuring TFS 2012 Update 1
- Choose Upgrade from the left-hand menu and click Start Wizard.
- Click Next on the first screen presented.
- We’re now asked to upgrade an existing database. Type in your SQL Server instance name and then click List Available Databases. The tool should find your TFS Configuration database.
- Confirm you have a current backup, then click Next.
- Next, we’re asked for the service account for our Application Tier. To make sure this is consistent, check the screenshots you created right at the start in your Preparation Steps. Click Next.
- Next up, we’re asked if we want to configure reporting services. Make sure the checkbox is checked, then click Next.
- Again checking your screenshots, make sure the instance and URLs for your Reporting Services instance are correct, and click Next.
- Next up is the TFS Warehouse database.
- Enter the correct SQL Server instance (if it’s not already correct), then test the connection by clicking on Test, then click List All Available Databases. The wizard will find the Tfs_Warehouse database automatically. If everything is correct, click Next.
- Next, you’re asked for your Analysis Services instance. Again, check your screenshots and enter the correct information before clicking Next.
- Next, we’re asked to provide an account that the Reports will run as. Check your screenshots and click Next.
- Next we’re asked if we want to configure SharePoint for TFS, we do, so we’ll make sure the checkbox is checked and click Next.
- Important: Even if you have a different SharePoint setup, it’s advisable to simply use the current SharePoint settings at this point. If you enter new details, the final step will have trouble verifying the installation as it will think you have two SharePoint instances. Don’t worry, you can change it later.
- On the next screen, we’ll get a summary of all the options we’ve chosen.
- Go through them carefully to make sure everything is correct, and click Verify to check.
Note that we had some issues at this point with Analysis Services. It appeared Analysis Services was corrupt and was preventing us from continuing. Thanks to this blog post by Oshry Horn, we were able to fix the issue and continue with our configuration.
Matt has also mentioned in the comments that the WWW Publishing service needs to be started at this point. You can do this by typing “net start was” in a command line console (as Administrator).
- Once the readiness checks pass, click Configure
- Wait patiently (again with coffee) while the upgrade goes through its steps. When finished, click Next.
- Once the TFS upgrade has finished, the Upgrade Wizard will upgrade each of the Project Collections. Be patient while it does this.
- At this point I ran the Dog Food Stats again (as per step 9) and checked that nothing had changed too much.
- I also upgraded Team Foundation Server on our Build Servers by installing the upgrade and checking the settings were the same.
- I also uninstalled the TFS Extensions on the SharePoint server and installed the new ones.
To get this working again, I had to repair the connection in the Configuration Manager on the TFS server to get them talking to each other again.
- We also had to reconfigure our Build Controller to get it working again.
After the final steps were completed, we went through the following tests to make sure everything was up and running again.
- Open Visual Studio and connect to TFS
- Do a Get Latest
- Make a change and check in
- Trigger a build and wait for it to succeed
- Check TFS Web Access is working by navigating to the TFS URL
- Check the Reporting Services are still working by navigating to the reporting URL
I’m happy to say all these tests passed without a problem.
We’re up and live on TFS 2012 Update 1!