views:

617

answers:

2

So we decided to go with visual studio team foundation server for version control, etc. Getting ready to deploy today and read in installation guide:

"You cannot install Team Foundation Server on a domain controller or a computer that is running other server products such as Exchange Server or Host Integration Server."

That and other comments in the guide lead me to think ms does not want me to install tfs on anything other than a server dedicated soley to hosting tfs (ie don't put it on one of my front-end webservers or backend dc).

I am planning on doing a single-server deployment (mostly for simplicity). Can anyone verify that tfs has to be on a dedicated machine? If so, should I virtualize it and hang it off one of the front end machines?

Thanks all...

+2  A: 

From my experience this is because of the user membership that comes with a domain controller where creating the necessary TFS groups on the domain controller gives incorrect permissions.

However, there is a workaround:

Installation of the TFS Data Tier Components on a Domain Controller

  1. Copy the contents of \dt in a temp. directory, e.g. C:\TEMP\dt.
  2. Open the file hcpackage.xml in Notepad or any XML capable editor
  3. Search for the phrase “domain controller”.
  4. Change the first WQL after the first match to

      <WQL
      namespace="\\.\root\cimv2"
      query="SELECT * FROM Win32_ComputerSystem WHERE Domain !=''
    

    AND DomainRole >3" action="=" count="1" />

    You have to change count="0" to count="1".

  5. Restart the setup.
Ray Booysen
+5  A: 

Performance is pretty important for TFS - check-ins, for example, should be pretty instantaneous or it can have a dramtic impact on developer productivity.

That said - it doesn't need a lot of horsepower - here's a link to the Server Requirements My current client is going "Virtual" - there should be no reason not to - assuming you know how to "tune" your virtual servers to perform equivilantly to the stated hardware specs.

One of the key things to remember, ALL data in TFS is stored in SQL server, so anything running on the same hardware that can affect SQL Server performance will affect TFS's performance. That is why it's important to have Build Server(s) distributed on another machine. Software builds are VERY "File-System" itensive operations and can have a very negative impact on SQL Server performance - hence why it's important to move that off to another "box"

fuzzbone
MS 'minimum requirements' have always been just that - the bare minimum. You'll probably need a new server to run it acceptably. OR go with subversion and save yourself so much time, money and hassle!
gbjbaanb