Note: This post was written over four years ago and may no longer work correctly. This post will remain published for posterity.
This tutorial assumes you have already created an Amazon EC2 instance and are able to ssh to it. In our case, we used the Quick Launch Wizard to spin up a 32-bit instance of Ubuntu Server Cloud Guest 11.10 (Oneiric Ocelot).
Once you have a running EC2 instance you’ll need to modify the instance’s security group to open up ports 22, 80 and 443.
The first thing I did was update the EC2 timezone to our local timezone:
$ sudo ln -sf /usr/share/zoneinfo/America/Los_Angeles /etc/localtime
Install any version control systems you might like to use:
$ sudo apt-get install git
Then pretty much just follow the installation instructions from the Jenkins Wiki. I’ve copied the actual steps here for posterity.
Installing Jenkins:
$ wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
$ sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list'
$ sudo aptitude update
# Note this will install the openjdk dependencies automatically!
$ sudo aptitude install jenkins
Setting up an Apache Proxy for port 80 -> 8080:
$ sudo aptitude install apache2
$ sudo a2enmod proxy
$ sudo a2enmod proxy_http
$ sudo a2enmod vhost_alias
$ sudo a2dissite default
$ touch /etc/apache2/sites-available/jenkins
Use your favorite editor to update /etc/apache2/sites-available/jenkins
with the following virtual host configuration:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName ci.company.com
ServerAlias ci
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPreserveHost on
ProxyPass / http://localhost:8080/
</VirtualHost>
Enable the new jenkins virtual host and restart apache:
$ sudo a2ensite jenkins
$ sudo apache2ctl restart
Jenkins should now be live and accessible from port 80! Now you can begin configuring Jenkins to your liking. I’ll follow-up with a post highlighting our Jenkins configuration. For now, here are the plugins we’ve chosen to install:
- Green Balls
- Post build task
- Instant Messaging Plugin
- IRC Plugin
- Rake plugin
- Git Plugin
- Github Plugin
- GitHub API Plugin
- Github OAuth Plugin