Tuesday, October 10, 2006

Team Development using MS TFS - Part 3

In part 1 and part 2 of this series we introduced TFS and its architecture.

I intended to close this series by writing about other aspects of team development using TFS. But a colleague pointed out that TFS deployment is not as easy as it looks to many. So I dedicate this post to the topic of installation. 
You can deploy TFS in two ways, single server or double server. Among reasons to use double server approach could be performance or distribution. In the double server implementation, application and database tiers will be physically separated and have more resources to utilize.

In this post I only discuss single server deployment.

Installation prerequisites 

1- User accounts

If the server in which you are installing TFS is part of a domain, you need three Active Directory domain user accounts.
If the server is a member of a workgroup, you can use local user accounts.



Sample user logon namePurpose
TFSSETUP
  • Used to run Team Foundation Server Setup.
  • This account must be an administrator on Team Foundation Server computers.
  • This account must be a member of the same domain as the following two service accounts. For example, you cannot have the two service accounts on a domain and then use a local account to run setup.
TFSSERVICE
  • Used as the service account by Team Foundation Server Windows services (Code Coverage Analysis Service and TFSServerScheduler), and the SharePoint Timer Service.
  • Used as the application pool identity by the Team Foundation Server application pool (TFS AppPool), and the Windows SharePoint Services application pools (TFWSS and TFSWSSADMIN).
  • Must have the Allow log on locally permission on Team Foundation Server computers.
  • For optimal security, this service account:
    - Should not be an administrator on Team Foundation Server computers.
    - Should have the option Account is sensitive and cannot be delegated selected for Active Directory on the domain.
TFSREPORTS
  • Used as the service account by SQL Server Reporting Services data sources.
  • This account should not be an administrator on Team Foundation Server computers.
  • This account must have the Allow log on locally permission on Team Foundation Server computers.
2- Login to the server using the Setup Account that you just created, TFSSETUP for example.
3- Install IIS 6.0 with ASP.NET enabled and without FrontPage server Extensions.
4- SQL Server Enterprise or Standard Edition. Please take note of following when installing SQL Server:
  • Install SQL Server as the default instance. Don’t name the instance.
  • Use the local system account for the service account. This should not be confused with the two service accounts you created prior to installation.
  • Install following services from SQL Services:
              - Database Services
              - Analysis Services
              - Reporting Services
              - Integration Services
  • Don't need to install Replication.
  • On the Report Server Installation Options page in the setup wizard, select "Install the default configuration".
5- Install SQL Server Hotfixes.
6- Install .NET Framework 2.0 Hotfix KB913393. It’s available on the TFS installation CD.

7- Install Windows SharePoint Service Service Pack 2. Install it with "Web Farm" option. You can download SharePoint Service Service Pack 2 from
here.
8- Eventually, install Team Foundation Server. During installation, the setup wizard asks about the Service Logon Account and Reporting Logon Account which you got to use the TFS Service Account (TFSSERVICE) and TFS Report Account (TFSREPORT) respectively.
 

Verification

To make sure the installation was successful, after restarting the server, open a browser and open http://localhost:8080/services/v1.0/Registration.asmx and click on GetRegistrationEntries. On the GetRegistrationEntries page, click Invoke without entering a ToolID. GetRegistrationEntries is a web method of a web service that is running on the Application Tier. The SOAP response from web service should look like this:

<?xml version="1.0" encoding="utf-8" ?>
<Type>vstfs</Type>
 

Installing a double server is not any different except that components are installed in different locations. Please feel free to share the problems you faced during TFS installation or administration.

5 comments:

Anonymous said...

Hello Amir,

That's what I wanted. Brief but good enough.
I eventually could install TFS. But now I'm facing a new problem. When I try to connect to the TFS Server through Team Explorer installed on my client machine, this error comes up:
TF31002: Unable to connect to this Team Foundation Server: server-name.
There are a few suggestions there. But I really can't figure that out.

Thanks again,
Jason

Unknown said...

Jason,

It seems you are facing a connection problem to the server. Firstly make sure that you can connect to the windows server through your client windows. Then you got to check the firewall on the server if you have any.
If after installation you have activated any firewall, you got to make a few tcp ports available.
Here is the list:

Required Ports for SQL Server 2005
SQL Service: 1433
SQL Browser Service: 1434
SQL Monitoring: 1444
SQL Server Analysis Service Redirector: 2382
SQL Server Analysis Service: 2383
SQL Server Reporting Service: 80

Required Ports for Windows SharePoint Services
Windows SharePoint Services: 80
SharePoint Central Administration: 17012

Required Ports for Team Foundation Server
Team Foundation Server: 8080
Team Foundation Server Proxy: 8081
Team Foundation Build Remoting: 9191

Let me know how did it go.

Anonymous said...

Hello,

It would be more helpful if you could write about other aspects of team development such as Requirement Management or Q.A.

Unknown said...

As the matter of fact, that was the plan.
But then I received e-mails and comments that I had to write about deployment before I go further.
So I realized there is no point of talking about team development aspects while blog readers have issues with deployment of the tool that they are going to use to understand those aspects.

Anyway, I won’t write about TFS and team development until I write about other topics to keep my promise of having a blog not to be specified by one technology or topic.

Jennifer said...
This comment has been removed by a blog administrator.