Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
Instructions to Setup Teamcity Agent on EC2 Ubuntu 12.04.2 Linux with NodeJS and PhantomJS

How to: Setup Teamcity Agent on EC2 Ubuntu 12.04.2 Linux with front end tools


Install dependencies

sudo apt-get update
sudo apt-get -y install openjdk-7-jre-headless libssl-dev git-core pkg-config build-essential curl gcc g++ checkinstall unzip

Download TeamCity

wget http://<your-teamcity-url>/update/
unzip -d buildAgent
chmod +x buildAgent/bin/
cp buildAgent/conf/ buildAgent/conf/

Change needed properties inside

You may need to set the originally commented ownAddress property to the public machine address Also, don't forget to open the default port (9090) in the Security Group settings.

vim buildAgent/conf/

Create the start script

sudo vim /etc/init.d/teamcity

Add the following contents:

#! /bin/sh
# /etc/init.d/teamcity 
# Carry out specific functions when asked to by the system
case "$1" in
    echo "Starting script teamcity "
    /home/ubuntu/buildAgent/bin/ start
    echo "Stopping script teamcity"
    /home/ubuntu/buildAgent/bin/ stop
    echo "Usage: /etc/init.d/teamcity {start|stop}"
    exit 1
exit 0

Give it proper permissions:

sudo chmod 755 /etc/init.d/teamcity

Add it to the startup process:

sudo update-rc.d teamcity defaults

Install nodejs

Create this script


echo Installing node version $ver
tar -zxf node-v$ver.tar.gz
cd node-v$ver
sudo ./configure && make && checkinstall --install=yes --pkgname=nodejs --pkgversion "$ver" --default

Execute it ( this will take a while )

chmod +x
sudo ./

(For uninstalling, simply sudo apt-get remove nodejs)

Alternatively, you can pick an option from Isaacs' gist to install node.

It's sometimes necessary to alias node and npm to all users in the machine:

sudo ln -s /usr/local/bin/node /usr/bin/node
sudo ln -s /usr/local/bin/grunt /usr/bin/grunt
sudo ln -s /usr/local/bin/phantomjs /usr/bin/phantomjs
sudo ln -s /usr/local/lib/node /usr/lib/node
sudo ln -s /usr/local/bin/npm /usr/bin/npm
sudo ln -s /usr/local/bin/node-waf /usr/bin/node-waf

Install grunt and phantom

sudo npm i -g grunt-cli phantomjs

Restart and check that the buildAgent is connected on TeamCity Server.

Great, Thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment