Roles look ok.
I take it rubber:bootstrap ran without any errors? You could try running it again in case there was a failure that didn't stop the sequence - some processes don't exit with error codes, let me know if you find any. It should be idempotent, so multiple runs are safe. Try a "rubber:bootstrap", then a "deploy" and see if that helps. If not, capture the output from both and I'll take a look.
Were you able to do a single instance ok (cap rubber:create_staging)?
In response to your question about ERB, rubber injects "rubber:config" in the capistrano lifecycle after deploy:update_code, but before deploy:restart or deploy:migrate. This tasks basically just expands the ERB templates from the code that was just pushed to the servers. It uses the rubber-*.yml, instance-*.yml, that were also pushed to the server in order to introspect your cluster and configure it according to the machine rubber:config is running on. If you are using an SCM like git, you need to check in all these files before they will be available on the server as part of deploy:update_code, however, if doing the rubber quickstart, it just zips up your directory tree, so gets them that way. If using SCM, as a convenience you can also set "push_instance_config" in deploy.rb to force pushing instance*.yml without checking it in.
Matt