A Vagrant-inspired tool for managing multiple machines in the cloud
Ruby Shell
Latest commit 47c8d72 Dec 11, 2013 @rtyler Merge pull request #84 from cloudbees/master
Don't force port 22 if the port is not set.

README.md

Blimpy

Build Status

Excelsior!

About

Blimpy is a tool to help developers spin up and utilize machines "in the cloud."

Once a developer has a Blimpfile, they can execute a few simple commands to manage the newly created "fleet" in the specified cloud provider:

   % blimpy start
   [snip]
   >> excelsior ..... online at: ec2-50-112-3-57.us-west-2.compute.amazonaws.com..
   >> goodyear ..... online at: ec2-50-112-27-89.us-west-2.compute.amazonaws.com
   %

Once machines are online, they're easy to access by name with:

  % blimpy scp goodyear secrets.tar.gz
  % blimpy ssh goodyear

Then once you're finished working with the machines a simple blimpy destroy will terminate the machines.


The Blimpfile

Here's an example Blimpfile:

    Blimpy.fleet do |fleet|
        fleet.add(:aws) do |ship|
            ship.name = 'rails-app'
            ship.ports = [22, 80, 8080] # [Optional] Create a security group with these ports open
            ship.image_id = 'ami-4438b474' # [Optional] defaults to Ubuntu 12.04 64-bit
            ship.livery = Blimpy::Livery::CWD # [Optional]
            ship.group = 'Simple' # [Optional] The name of the desired Security Group
            ship.region = 'us-west-1' # [Optional] defaults to us-west-2
            ship.username = 'ubuntu' # [Optional] SSH username, defaults to "ubuntu" for AWS machines
            ship.flavor = 'm1.small' # [Optional] defaults to t1.micro
            ship.tags = {:mytag => 'somevalue'} # [Optional]
            ship.provision_on_start = false # [Optional] defaults to true
        end
    end

Supported Clouds

Currently Blimpy supports creating machines on:


What is Livery?

In aviation, livery is the insignia or "look" an aircraft typically has. For example, Alaskan Airlines has a distinctive "creepy mountain man" livery on every plane.

With Blimpy, "livery" is a similar concept, a means of describing the "look" of a specific machine in the cloud. Currently the concept is still on the drawing board, but if you would imagine a tarball containing a bootstrap.sh script and Chef cookbooks or Puppet manifests to provision the entirety of the machine from start-to-finish.

When the machine comes online, the specified livery would be downloaded from S3 (for example) and bootstrap.sh would be invoked as root.