JClouds Plugin

This plugin uses JClouds to provide slave launching on most of the currently usable Cloud infrastructures.

Plugin Information

No Information For This Plugin

JClouds  plugin provides option to launch Hudson slaves on any Cloud provider supported by JClouds (http://www.jclouds.org/documentation/reference/supported-providers), or on a cloud provider implementing one of the APIs JClouds supports.

Adding a new Cloud Provider

  • Goto Hudson Configuration page by clicking on Manage menu or browsing to the URL http://localhost:8080/configure
  • Scroll down to Cloud Section
  • Click on the `Add a new cloud` pop-up menu button which should have an option - `Cloud (JClouds)`
  • Click on `Cloud (JClouds)`
  • Fill in the configuration options
    • Profile : the name of the profile e.g, aws-slave-profile
    • Provider Name: type first two characters and you'll get an auto-completed provider name (e.g. aws-ec2 or hpcloud-compute)
    • End Point URL: if your provider API needs an endpoint configuration, add it here, otherwise leave it empty.
    • Max Number of Instances: The maximum number of instances to run from this cloud at one time.
    • Retention Time: How long, in minutes, to wait for a slave to remain idle before disconnecting and terminating it. Defaults to 30.
    • Identity : your accessId
    • Credential: your secret key
    • RSA Private Key/Public Key: If you have a keypair, then just copy paste the public and private key parts, otherwise click on `Generate Key Pair` button.
    • Click on `Test Connection` to validate the cloud settings.
  • Add Cloud Instance Template by clicking on the Add button
  • Fill in configuration options:
    • Name : the name of the instance template e.g. aws-hudson-slave
    • Number of Executors: How many executors each slave created from this template should have.
    • Description: notes/comments for your reference.
    • Image ID: Image ID to use for this slave template, such as EC2 AMIs. Note that EC2 AMIs must include the region as well, e.g., "us-east-1/ami-00000".
    • OSFamily: Specify the OSFamily - leave empty for default for a cloud provider
    • OS Version : Specify the OSVersion - leave empty for default for a cloud provider
    • Hardware ID: Hardware ID on provider for this slave template, such as "t1.micro" on AWS EC2.
    • RAM : in MB
    • No. of Cores: number of virtual processor cores.
    • Labels: (space-separated) labels/tags that you can use to attach a build to this slave template
    • Init Script: A shell script to be run when the slave is created.
    • Stop on Terminate: If true, suspend slaves rather than terminating them.
  • Click Save to save the configuration changes.
  • Goto Hudson' home page, click on `Build Executor Status` link on the sidebar.
  • Verify that you have a button with `Provision via JClouds - (YOUR PROFILE NAME) drop down with the slave template name you configured.
  • Click on the slave and see if your slave launched succesfully (please wait until the operation completes).

Executing build on the slave

  • To run your build on the newly configured slave computer, just enable the `Restrict where this project can be run` option in the build configuration page.
  • Enter the label which you choose for the instance template in the `Label Expression` text field. This should auto-complete labels for you.
  • Click save to save the configuration options.
  • Schedule the build to check whether the build is executed on the selected slave template.

Adding a Blobstore Profile for storing build artifacts

The plugin also provides a way to store your build artifacts on JClouds supported cloud storage providers. You can configure multiple
blobstore profiles and configure the build to copy different files/artifacts to the specified container. Here's how you configure the same.

Publishing artifacts after a build

After you configure a cloudstorage provider, you can enable the publishing file by enabling it under `Post-build Actions` in the build job configuration page.

  • Click on the checkbox `Publish artifacts to JClouds Clouds Storage`
  • You should now see a dropdown with configured storage profiles. Select the one you want to use for this build.
  • Click on Add button next to `Files to upload`.
  • Add the sourcd file path (relative to workspace)
  • Add the destination container name.
  • Repeat to add more files if you want to copy.
  • Click save.

When the build is complete and succesful, the configured files will be published to the configured blobstore.


plugin-must-be-labeled plugin-must-be-labeled Delete
Enter labels to add to this page:
Wait Image 
Looking for a label? Just start typing.
  1. Feb 05, 2011

    Bruno Katekawa says:

    Hi guys, I'm new here on Hudson Wiki, the company that I work uses Hudson for Q...

    Hi guys,

    I'm new here on Hudson Wiki, the company that I work uses Hudson for Q.A. Automated Tests. We're currently researching jClouds and RackSpace to develop a plugin for Hudson for load distribution. If possible, I would like to know how to code (or build) a plugin like this, at least the basics to start and we can move on together.

    I hope to share knowledge and information about this topic.


    Best Regards,