Background:
This is a little known command available with the Team Foundation Server’s command line utility. Essentially it lets you install team build services (along with controllers and agents) on a machine by passing in a configuration file. The syntax is
tfsconfig setup /install /unattendfile:{filepath}
The file looks like
<Configuration>
<TeamBuild>
<CollectionUri>
<Uri>Url of your TFS project collection</Uri>
</CollectionUri>
<Credentials>
<FullName></FullName>
<Password></Password>
</Credentials>
<Controller>
<ControllerName>Default Controller</ControllerName>
<CustomAssemblyPath />
<MaxConcurrentBuilds>0</MaxConcurrentBuilds>
</Controller>
<Agent>
<AgentName>Agent 1 Name</AgentName>
<ControllerName>Default Controller</ControllerName>
<BuildDirectory>$(SystemDrive)\Builds\$(BuildAgentId)\$(BuildDefinitionPath)</BuildDirectory>
</Agent>
<!--AgentName>Agent 2 Name</AgentName>
<ControllerName>Controller Name</ControllerName>
<BuildDirectory>$(SystemDrive)\Builds\$(BuildAgentId)\$(BuildDefinitionPath)</BuildDirectory>
</Agent>-->
<Port>9191</Port>
<UseSSL>False</UseSSL>
</TeamBuild>
</Configuration>
In its current form it will configure TFS Build services on the machine on port 9191 with two agents.
Problem:
The way the config is setup, it will configure the build services on the machine with the url looking like
my problem is that for some reason I want to be able to control the “machinename” or essentially the URL of the build service. I have a suspicion that it is possible by specifying another param in the config file but for the life of me I can’t figure this out! Some help will be very welcome.
Unfortunately, unattended installation with tfsconfig isn’t documented because it was not finished in 2010. We have plans to finish in the next release.