This is a two part blog series. The first will focus on setting up your elastic instance with EC2 (and Windows) and the second will show you how to work with your existing EC2 images and Bamboo.

In 2009, we introduced cloud support for Bamboo by taking advantage of Amazon’s Elastic Compute Cloud (EC2) – elastic agents. This feature allowed Bamboo users to instantly add the capacity they needed for their continuous integration environment using Amazon EC2.

Elastic Compute Cloud usage in Bamboo has seen steady growth and popularity, especially among the users of our OnDemand platform, where all computing resources for Bamboo are supplied by Amazon’s EC2.

Listening to customer feedback, we have added more and more cloud based features, including:

  • support for Amazon EC2 spot instances
  • automatically Managed Elastic instances

In Bamboo 3.4 we focused on expanding cloud usage by providing

  • support for EC2 on Windows/.Net
  • availability of more stock Bamboo EC2 images
  • easier customisation of EC2 images

Note: the information below relates to Bamboo 3.4. Need to upgrade? Check out the Bamboo Upgrade guide.

EC2 Windows Support

Below is a step-by-step guide to get started with Bamboo and Amazon EC2 Windows.

In Bamboo 3.4, your EC2 image list now includes a new stock Bamboo image – Windows.

The stock Bamboo Windows image is based on Windows 2008 Server R2 64bit.

If you are familiar with setting up a Linux/UNIX image, the process is similar for setting up a Windows image. Let’s set up our Bamboo Windows image in three simple steps:

1. Enable Elastic Bamboo support.

2. Start a Windows instance.

3. Build away!

Bamboo will do all the work to get you going with Windows. For some, this step-by-step will get you going, but for others, the Windows image might need to be customized to fit your needs.

Windows Image Customisation

Bamboo’s stock Windows image contains the basic tools required to build your projects

  • JDK
  • Maven, Ant and NAnt
  • Support for version control systems including Subversion, Git, Mercurial, CVS and Perforce

Chances are you’ll want to enhance the Windows image with your specific toolchain components, such as build systems, compilers, and databases. These enhancements are quite easy with Bamboo 3.4.

  1. Navigate to the elastic instance that you would like to customize
  2. Log into the elastic agent using a Remote Desktop Connection – a password is provided on the elastic instance page

3. After logging in to your elastic instance, you can now make the necessary adjustments to the image and bundle it (the example below uses AWS Management Console):

In the past, you had to update your custom image every time a new version of Bamboo was released. No longer with Bamboo 3.4 – the images — along with the custom plugins you have installed on your system — will automatically adapt to the version of the current Bamboo Server. This change also applies to Linux images as well.

Security

Instances created from Windows images are as secure as the Linux ones – or for that matter, as secure as any other hosts available on the Internet. The image has no default credentials that could be used externally, and it has no services that could make your instances available to unauthorised people. The only services open to external access are Bamboo’s internal encrypted tunnel port and Remote Desktop Protocol port for an interactive access to the instance.

For a stock Bamboo image, the Administrator password is randomly generated every time an instance is started and made available to people with access to the private instance launch key only(that includes Bamboo Administrators).

When creating your own images, you may opt to choose your own fixed password (in this case the password will not be available anywhere and you should make sure it’s not lost) or a randomized password using the the password randomisation feature.

The Future of Windows Images

Windows images are now a permanent feature of Bamboo, and hopefully, they will already be useful to people who wish to use them. However, we realize that it’s difficult to get everything done right the first time. So, if you have any suggestions regarding the content of the images (keep in mind that licensing issues may be involved) or anything that could be improved, be sure to let us know via our issue tracking system. We will try to include your suggestions in the future versions of Bamboo.

Using your existing EC2 Images with Bamboo

Stay tuned for the second part of our blog series on EC2 Windows Images. In some cases, instead of using a stock Bamboo image as a starting point for your customisation, you may want to start with a non-Bamboo image (for example, one containing a different Windows version or possibly, additional software from a third party vendor). Subscribe to the to the Dev Tools blog or check back next week.

Bamboo – Windows Cloud Support