Here's a simple gist I use to provision either Amazon EC2 AMIs or Slicehost images running Ubuntu Intrepid. It'll setup all the requirements to build Ruby 1.9.1 from source since the official Ubuntu package isn't due out until Karmic Koala is released. It has a handful of constants at the top of the file you need to define for everything to work right. Of note are the application name and the machine's FQDN it should answer on. If your using EC2 you might have to tweak some configuration afterward since the FQDN in DNS probably won't match the IP of the machine's interface. Also, if you plan on using authorized_keys and deploying from a git repository it makes things a lot easier if you tar and gzip the relevant files and put them in an S3 bucket to pull from. The script handles this case as well. As always, make sure you understand what a provisioning script does before you accept it with blind faith. At Flatterline we use this as our base template.