Dumbwaiter hoists your Rails application up to OpsWorks and ratchets deployment information back down.
Origin
Before Scalarium became OpsWorks, they maintained a gem that did the sorts of functions described here. Like Heroku Toolbelt, the Scalarium gem offered users a very basic workflow experience: upload and run Chef recipes, execute commands remotely and watch their output.
Goals
Dumbwaiter prescribes a very specific OpsWorks-centric workflow with the same feeling of the Scalarium gem's CLI:
- Create OpsWorks stacks, layers and instances via YAML files
- Assign a stack's custom Chef cookbooks as a custom GitHub repo
- Create an application corresponding to a GitHub repo
- Run versioned deployments, rollbacks and one-off recipes
Non-Goals
Dumbwaiter only deals with OpsWorks workflow, excluding:
- Standing up VPCs
- Running CloudFormation templates
- One-off bash-level commands(^) and log tailing
^ Making a cookbook to run one-off commands is totally not unheard-of.
Installation
Add this line to your application's Gemfile:
gem 'dumbwaiter'
And then execute:
$ bundle
Or install it yourself as:
$ gem install dumbwaiter
Usage
Deploy the "cinnamon" branch of the "syrup" application to the "Pancake" stack:
dumbwaiter deploy Pancake syrup cinnamon
List all the layers of the "Pizza" stack:
dumbwaiter layers Pizza
List the deployments on the "Maniacal Checklist" stack:
dumbwaiter list "Maniacal Checklist"
Upload all the custom cookbooks for the "Sweden" stack:
dumbwaiter rechef Sweden
Roll back the "Snowman" stack's "dandruff" application:
dumbwaiter rollback Snowman dandruff
Run the sneakers recipe on all the angsty instances of the "Documentarian" stack:
dumbwaiter run_recipe Documentarian angsty sneakers
List the stacks and apps in your OpsWorks environment:
dumbwaiter stacks
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request