2012-04-21 18:24:14 +00:00
|
|
|
# Blimpy
|
2012-05-19 18:46:06 +00:00
|
|
|
[![Build Status](https://buildhive.cloudbees.com/job/rtyler/job/blimpy/badge/icon)](https://buildhive.cloudbees.com/job/rtyler/job/blimpy/)
|
2012-04-21 18:24:14 +00:00
|
|
|
|
2012-04-23 06:24:38 +00:00
|
|
|
![Excelsior!](http://strongspace.com/rtyler/public/excelsior.png)
|
2012-04-21 18:24:14 +00:00
|
|
|
|
2012-04-23 06:24:38 +00:00
|
|
|
|
2012-09-03 22:09:35 +00:00
|
|
|
## About
|
2012-05-20 17:30:32 +00:00
|
|
|
|
|
|
|
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.
|
|
|
|
|
2012-04-21 18:24:14 +00:00
|
|
|
|
2012-09-03 22:09:35 +00:00
|
|
|
---
|
2012-04-22 21:46:37 +00:00
|
|
|
|
2012-09-03 22:09:35 +00:00
|
|
|
## The Blimpfile
|
2012-04-22 21:46:37 +00:00
|
|
|
|
|
|
|
Here's an example Blimpfile:
|
|
|
|
|
|
|
|
```ruby
|
|
|
|
Blimpy.fleet do |fleet|
|
2012-05-19 18:46:06 +00:00
|
|
|
fleet.add(:aws) do |ship|
|
2012-05-20 17:30:32 +00:00
|
|
|
ship.name = 'rails-app'
|
2012-05-21 18:19:21 +00:00
|
|
|
ship.ports = [22, 80, 8080] # [Optional] Create a security group with these ports open
|
2012-08-23 05:20:56 +00:00
|
|
|
ship.image_id = 'ami-4438b474' # [Optional] defaults to Ubuntu 12.04 64-bit
|
|
|
|
ship.livery = Blimpy::Livery::CWD # [Optional]
|
2012-05-21 18:19:21 +00:00
|
|
|
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
|
2012-12-27 19:51:35 +00:00
|
|
|
ship.flavor = 'm1.small' # [Optional] defaults to t1.micro
|
2013-02-06 20:48:01 +00:00
|
|
|
ship.tags = {:mytag => 'somevalue'} # [Optional]
|
2013-04-25 22:11:53 +00:00
|
|
|
ship.provision_on_start = false # [Optional] defaults to true
|
2012-04-22 21:46:37 +00:00
|
|
|
end
|
|
|
|
end
|
|
|
|
```
|
2012-04-23 06:24:38 +00:00
|
|
|
|
2012-09-03 22:09:35 +00:00
|
|
|
### Supported Clouds
|
|
|
|
|
|
|
|
Currently Blimpy supports creating machines on:
|
|
|
|
|
|
|
|
* [Amazon Web Services](https://github.com/rtyler/blimpy/wiki/AWS) - using the `:aws` argument passed into `fleet.add`
|
|
|
|
* [OpenStack](https://github.com/rtyler/blimpy/wiki/OpenStack) - using the `:openstack` argument passed into `fleet.add`
|
|
|
|
|
|
|
|
---
|
2012-04-23 06:24:38 +00:00
|
|
|
|
|
|
|
### 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](http://farm1.static.flickr.com/135/333644732_4f797d3c22.jpg)" 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.
|