5535fc09c6
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. |
||
---|---|---|
bin | ||
features | ||
lib | ||
scripts | ||
spec | ||
.gitignore | ||
Gemfile | ||
LICENSE | ||
README.md | ||
Rakefile | ||
blimpy.gemspec | ||
cucumber.yml |
README.md
Blimpy
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:
- Amazon Web Services - using the
:aws
argument passed intofleet.add
- OpenStack - using the
:openstack
argument passed intofleet.add
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.