A Vagrant-inspired tool for managing multiple machines in the cloud
Go to file
Jeff Blaine 5535fc09c6 Intro .provision_on_start flag for ships
Allows control over when the livery provisioning happens for
ships. This was needed because sometimes we don't want to
provision (Puppet) until all ships are up and we know their
hostnames in AWS, etc.
2013-04-25 22:11:53 +00:00
bin Fixed a system/local conflict problem 2013-03-29 16:15:41 -07:00
features Revert "Fixing the unit test failure" 2013-03-29 17:02:33 -07:00
lib Intro .provision_on_start flag for ships 2013-04-25 22:11:53 +00:00
scripts Support for RHEL, tested on RHEL 6 AMI 2012-12-12 12:28:54 -05:00
spec Fix bug causing inconsistent values for security group names 2012-10-03 16:50:39 -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.