A Vagrant-inspired tool for managing multiple machines in the cloud
Go to file
R. Tyler Croy 41b357060f Add cucumber profiles and clean up the Rakefile a bit 2012-08-22 22:16:50 -07:00
bin Avoid trying to update YAML::ENGINE if it's not there 2012-07-21 12:08:29 -07:00
features Add a simple "version" task to print the current version of the gem 2012-08-21 20:14:55 -07:00
lib Remove the notion of an "engine" since it's not any useful form of an abstraction 2012-08-22 20:32:48 -07:00
scripts Refactor the Linux and FreeBSD Puppet liveries into one script 2012-08-10 16:32:09 -07:00
spec Remove the notion of an "engine" since it's not any useful form of an abstraction 2012-08-22 20:32:48 -07:00
.gitignore Add cucumber profiles and clean up the Rakefile a bit 2012-08-22 22:16:50 -07:00
Gemfile Add ci_reporter support for generating Jenkins compatible JUnit XML 2012-07-27 16:26:17 -07:00
LICENSE Add initial commit 2012-04-21 11:24:14 -07:00
README.md Clean up the README's Blimpfile options 2012-05-21 11:19:21 -07: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.


(Inspired by Vagrant)

Notes and other bits are being stored in this public Evernote notebook.

The current concept/design document is captured in this note

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-349b495d' # [Optional] defaults to Ubuntu 10.04 64-bit
            ship.livery = 'rails' # [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
        end
    end

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.