A Vagrant-inspired tool for managing multiple machines in the cloud
Go to file
R. Tyler Croy 47c8d72243 Merge pull request #84 from cloudbees/master
Don't force port 22 if the port is not set.
2013-12-11 10:49:09 -08:00
bin Fixed a system/local conflict problem 2013-03-29 16:15:41 -07:00
features Expose the resume functionality through a specific CLI command 2013-06-30 20:55:36 -07:00
lib Don't force port 22 if the port is not set. 2013-09-27 09:48:12 -07:00
scripts Use Puppetlabs repo site, not gems 2013-04-25 22:18:23 +00:00
spec Sanitize hostnames for keypairs 2013-06-30 20:44:07 -07:00
.gitignore Add cucumber profiles and clean up the Rakefile a bit 2012-08-22 22:16:50 -07:00
Gemfile debugger gem only works with 1.9 and forward 2013-03-27 18:32:33 -07:00
LICENSE Add initial commit 2012-04-21 11:24:14 -07:00
README.md Intro .provision_on_start flag for ships 2013-04-25 22:11:53 +00:00
Rakefile Add cucumber profiles and clean up the Rakefile a bit 2012-08-22 22:16:50 -07:00
blimpy.gemspec Add support for tarballing up directories to send along to the hosts 2012-04-28 21:23:00 -07:00
cucumber.yml Add cucumber profiles and clean up the Rakefile a bit 2012-08-22 22:16:50 -07:00

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.