This page covers:
Before you can start customizing projects and creating build configurations, you need to configure build agents.
|
Before the installation, please review Known Issues#Conflicting Software section.
Please note that in order to run a TeamCity build agent, user account that is running the agent should have the privileges described below.
Network
buildAgent.properties
file (9090 by default) and the following hosts are tried:
buildAgent.properties
file (if any)If the agent is behind NAT and cannot be accessed by any of addresses of agent machine network interfaces, please specify ownAddress in the agent config.
Common
<agent home>
(necessary for automatic agent upgrade), <agent work>
, and <agent temp>
.Windows
For granting necessary permissions for unprivileged users, see Microsoft SubInACL utility. For example, to grant Start/Stop rights you might need to execute subinacl.exe /service browser /grant=<login name>=PTO
command.
Linux
shutdown
command (for agent machine reboot functionality and machine shutdown functionality when running in Amazon EC2)Build-related Permissions
The build process is launched by TeamCity agent and thus shares the environment and is executed under the same OS user that TeamCity agent runs under. Please ensure that TeamCity agent is configured accordingly.
See Known Issues for related Windows Service Limitations.
Please be sure to read through this section is you plan to deploy agent and server into non-secure network environments. |
During TeamCity operations, both server establishes connections to the agents and agents establish connections to the server.
Please note that by default, these connections are not secured and thus are exposing possibly sensitive data to any third party that can listen to the traffic between the server and the agents. Moreover, since the agent and server can send "commands" to each other an attacker that can send HTTP requests and capture responses can in theory trick agent into executing arbitrary command and perform other actions with a security impact.
It is recommended to deploy agents and the server into a secure environment and use plain HTTP for agents-to-server communications as this reduces transfer overhead.
It is possible to setup a server to be available via HTTPS protocol, so all the data traveling through the connections established from an agent to the server (incl. download of build's sources, artifacts of builds, build progress messages and build log) can be secured. See Using HTTPS to access TeamCity server for configuration details.
However, the data that is transferred via the connections established by the server to agents (build configuration settings (all the settings configured on the web UI including VCS root data) is passed via unsecured HTTP connection. For the time being TeamCity does not provide internal means to secure this data transfers (see/vote for TW-5815). If you want to secure the data you need to establish appropriate network security configurations like VPN connections between agent and server machines.
You can install an additional build agent using any of the following installation options available:
When the newly installed agent connects to the server for the first time, it appears on the Unauthorized agents
tab under Agents
, where administrators can authorize it. This will connect the agent to the server for the first time.
Agents will not run builds until they are authorized in the TeamCity web UI. The agent running on the same computer as the server is authorized by default. |
If the agent does not seem to run correctly, please check the agent logs.
JAVA_HOME
environment variable to point to the JDK 1.6+ installation directory.You can install the build agent Windows service during the installation process or manually. |
agentInstaller.exe
Windows Installer and follow the installation instructions.
Please ensure the user under whom the agent service is running has appropriate permissions |
<installation path>\conf
directory, locate the file called buildAgent.dist.properties
and rename it to buildAgent.properties
.buildAgent.properties
file to specify the TeamCity server URL and the name of the agent. Please refer to Build Agent Configuration section for more details on agent configurationOn Windows you may also want to install the build agent windows service instead of manual agent startup. |
TeamCity provide functionality that allows to install a build agent to a remote host. Currently supported combinations of server host platform and targets for build agents are:
SSH note |
There are several requirements for the remote host that should be met:
Platform |
Prerequisites |
---|---|
Unix |
Installed JDK(JRE) 1.6+ required. JVM should be reachable with JAVA_HOME(JRE_HOME) environment variables or be in paths. |
Windows |
|
Note, that if you are going to use same settings for several target hosts, you can create a preset with these settings, and use it next time when installing an agent to another remote host. |
Sysinternals psexec.exe
, in which case you will see corresponding warning and a link to Administration | Server Configuration | Tools tab where you can download it.You can use Agent Push presets in Amazon EC2 Cloud profile settings to automatically install build agent to started cloud instance. |
To start the agent manually, run the following script:
for Windows: <installation path>\bin\agent.bat start
for Linux and MacOS X: <installation path>\bin\agent.sh start
If you're running build agent on MacOS X and you're going to run Inspection builds, you may need to use the StartupItemContext utility:
|
To stop the agent manually, run the <Agent home>\agent
script with a stop
parameter.
Use stop
to request stopping after current build finished.
Use stop force
to request immediate stop (if a build is running on the agent, it will be stopped abruptly (canceled))
Under Linux, you have one more option top use: stop kill
to kill the agent process.
If the agent runs with a console attached, you may also press Ctrl+C in the console to stop the agent (if a build is running it will be canceled).
In Windows, you may want to use the build agent Windows service to allow the build agent to run without any user logged on.
If you use Windows agent installer you have an option to install the service in the installation wizard.
To run builds, the build agent should be started under a user with enough permissions for performing a build. By default, Windows service in started under SYSTEM ACCOUNT. To change it, use the Services applet (Control Panel|Administrative Tools|Services) |
The following instruction can be used to install the service manually. This procedure should also be performed to install second and following agents on the same machine as Windows services
To install the service:
wrapper.java.command
property in <agent home>\launcher\conf\wrapper.conf
file to contain valid path to Java executable in the JDK installation directory. You can use wrapper.java.command=../jre/bin/java
for agent installed with Windows distribution.<agent home>/bin/service.install.bat
file.To start the service:
<agent home>/bin/service.start.bat
To stop the service:
<agent home>/bin/service.stop.bat
You can also use Windows net.exe
utility to manage the service once it is installed.
For example (assuming the default service name):
net start TCBuildAgent |
The file <agent home>\launcher\conf\wrapper.conf
can also be used to alter agent JVM parameters.
For MacOSx, TeamCity provides ability to load a build agent automatically at the system startup using LaunchDaemons plist
file.
To use LaunchDaemons plist
file:
buildAgent.zip
or via Java web-startconf/buildAgent.properties
filechmod +x buildAgent/launcher/bin/*
sh buildAgent/bin/mac.launchd.sh load |
You have to wait several minutes for the build agent to auto-upgrade from the TeamCity server. |
buildAgent/bin/jetbrains.teamcity.BuildAgent.plist
to /Library/LaunchDaemons
directory for automatic startup (you may need to create this directory, if it doesn't exists)sh buildAgent/bin/mac.launchd.sh unload |
If you need to configure TeamCity agent environment you can change <TeamCity Agent Home>/launcher/conf/wrapper.conf
(JSW configuration). For example, to make the agent see Mono installed using MacPorts on Mac OS X agent you will need to add the following line:
set.PATH=/opt/local/bin%WRAPPER_PATH_SEPARATOR%%PATH% |
TeamCity treats equally all agents no matter if they are installed on the same or on different machines. However, before installing several TeamCity build agents on the same machine, please consider the following:
After having one agent installed, you can install additional agents by following the regular installation procedure (see exception for the Windows service below), but make sure that:
workDir
and tempDir
directories in buildAgent.properties
file.name
and ownPort
properties of buildAgent.properties
are unique.Moreover, make sure you don't have build configurations with absolute checkout directory specified (alternatively, make sure such build configurations have "clean checkout" option enabled and they cannot be run in parallel).
Usually, for a new agent installation you can just copy the directory of existing agent to a new place with the exception of its "temp", "work", "logs" and "system" directories. Then, modify conf/buildAgent.properties
with a new "name" and "ownPort" values. Please also clear (delete or remove value) for "authorizationToken" property.
If you want to install additional agents as services under Windows, do not opt for service installation during installer wizard or install manually (see also a feature request), then
modify the <agent>\launcher\conf\wrapper.conf
file so that wrapper.console.title
, wrapper.ntservice.name
, wrapper.ntservice.displayname
and wrapper.ntservice.description
properties have unique values within the computer. Then run <agent>\bin\service.install.bat
script under user with sufficient privileges to register the new agent service.
See above for the service start/stop instructions.
See also:
Concepts: Build Agent |