Food Court

Food Court is a streamlined way to use chef-solo and capistrano for VPS’s such as slicehost. Setup a new slice in 15 minutes or less.

Instructions

  • install the gem

    gem install food_court
    
  • cd into your project

    food-court init
    
  • add your root user, password, and host to config/chef/bootstrap.rb for bootstrapping your slice

  • setup your slice for chef

    food-court bootstrap
    
  • modify your order.rb to add your desired user name and passwords and change any default packages

  • then run update to push up your cookbooks and configure the server with chef-solo

    food-court update
    

Cookbooks

  • You can provide your own customizations inside of ‘site-cookbooks’ these get zipped up and pushed to your server. This allows you to override or create more custom recipes for your app.

  • The default stack uses a base set of cookbooks merged from opscode and 37signals by akitaonrails. They have been stripped down to just the essentials and can be found at github.com/gvarela/food_court_cookbooks. You can actually use any cookbooks you would like just change the order.rb to point to your favorite repository.

  • The food_court_cookbooks repository will be a mirror of recipes that are known to work together on simple apps for hosts such as Slicehost. Feel free to fork it and add your own.

Gotchas

Since Food Court uses Chef you are bound to run into some Chef specific issues

Chef help: wiki.opscode.com/display/chef/Home

A good intro to chef-solo: akitaonrails.com/2010/02/20/cooking-solo-with-chef

a common issue on slicehost is the fqdn in /etc/hosts

67.xx.xx.xx my-slice

should be

67.xx.xx.xx my-slice.local my-slice

Roadmap

  • add cucumber features for integration testing

  • enable rollingback a deployment

  • enable setup to accept a remote location for template packages

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 © 2010 Gabe Varela. See LICENSE for details.

Inspiration

Josh Peek: github.com/josh/slicehost/

Thomas Balthazar: github.com/suitmymind/ubuntu-machine/

Mike Hale: github.com/mikehale/drive-thru/

Thanks

Fabio Akita for the great article on chef-solo akitaonrails.com/2010/02/20/cooking-solo-with-chef