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
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