Server Blender

IMPORTANT: this is pre-alpha. interface is not near being stable. I'm still working on making it not-a-hack :)

(Note to self: write the tests already you lazy bastard! ;)

Introduction

Boostrap and manage servers with shadow_puppet

Blender tries to be a fairly minimal wrapper around shadow_puppet

shadow_puppet is a Ruby interface to Puppet manifests.

During 'mixing' blender will transfer ALL files in the source directory to the remote server and then execute the designated 'recipe' with shadow_puppet.

Quick Start

The intended usage workflow is as follows:

  • (optional) blender start - to start a new server instance (currently only EC2 is supported)
  • blender init root@HOSTNAME - install minimal system required to run blender recipes
  • blender mix [-r RECIPE] [DIR] root@HOSTNAME

Note: root access through ssh is required for blender to work. There are no current plans to support sudo or some other method of privilege elevation (but I will consider it if there is a popular demand. I'm definitely will accept patched for such support ;)

Examples

initialize blender

$ blender init [email protected]

mix default recipe (default.rb) from directory my_recipes

$ blender mix my_recipes [email protected]

mix recipe extra.rb from directory my_recipes

$ blender mix my_recipes -r extra [email protected] # will run my_recipes/extra.rb

mix recipe extra.rb from the current directory

$ blender mix -r extra [email protected] # will run ./extra.rb

Note on Patches/Pull Requests

  • Fork the project.
  • Make your feature addition or bug fix.
  • Add tests for it. This is important so I don't break it in a future version unintentionally.
  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
  • Send me a pull request. Bonus points for topic branches.

Copyright (c) 2009 Vitaly Kushner. See LICENSE for details.