Skip to content
ches edited this page Oct 27, 2011 · 4 revisions

BarCamp Infrastructure Management

The BarCamp Bangkok server configuration is managed by Chef. Since BarCamp is a volunteer effort where team members may come and go, this is intended to keep server management consistent and documented, with an audit trail of who made changes and why, via the Chef repository's git log. It also serves as a means of quickly restoring the BarCamp site to service in the event of a catastrophic server failure.

We are using Chef Server via Opscode's Hosted Chef platform. Chef Server is overkill for our needs really (Chef Solo would serve well for a single server), but Server was chosen for a few reasons:

  • Educational purposes (maybe used for a BarCamp talk!)

  • Concomitant to that, if volunteers for other BarCamps in Thailand wish to learn about Chef and use it for their servers, they can share our Hosted Chef account and begin experimenting with it with BarCamp Bangkok's example to follow, and without having to go through initial Chef setup steps themselves. Hosted Chef is free for up to 5 nodes.

To work with the server automation, you should sign up for your own Hosted Chef account (no charge). Once you've done so, let the BarCamp web team know your user name, and you'll be added to the barcampbangkok organization on the platform. We'll send you a validation key for the organization -- we'll cover what you'll need to do with this in our Getting Started guide below. Don't worry about adding your own organization or downloading any keys or configuration that you may be prompted about at this stage.

You'll also need access to this GitHub project to push changes that you make. Sign up for GitHub if you need to, and tell the web team your user name so that you can be added as a project collaborator.

Get Cooking

The Opscode wiki (linked above) has extensive documentation for using Chef. However, their official Getting Started guide is confusing, in my opinion. Instead, I'll present a brief guide here on our wiki, using our established setup to give specific examples:

Getting Started with Chef

Opscode's cookbooks repository offers plenty of examples for seeing how cookbooks work, when you're ready to start modifying code. Cookbooks are packaged collections of code, templates and other files that describe the setup of infrastructure components (for example Apache, PostgreSQL, etc.). See the Opscode wiki when you're ready to learn more.

Other Pages of Note