Every repository with this icon (
Every repository with this icon (
Quick Start
You can follow these steps to create a demo app on a single instance
Create a simple rails project
rails rubbertest
cd rubbertest
./script/generate scaffold post title:string body:text
Install rubber
./script/plugin install git://github.com/wr0ngway/rubber.git
./script/generate vulcanize complete_mysql
The complete_mysql gnerator gives you a deployment setup which inludes nginx, mongrel_cluster, mysql (automatic master/slave replication if you create a second instance in the mysl_slave role) monit and munin.
Configure rubber
Edit config/rubber/rubber.yml. To do a simple demo, you need real values for these keys
- aws_access_key
- aws_secret_access_key
- aws_account
- ec2_key_name
- ec2_key_file (See the FAQ if having connection issues.)
For a real app, you should go through all the settings in rubber.yml as well as the settings in rubber-MODULE.yml which contains settings specific to each MODULE (nginx, mongrel, etc)
Create, bootstrap, then deploy to instance
ALIAS=production ROLES=web,haproxy,app,mysql_master cap rubber:create
cap rubber:bootstrap
cap deploy:setup
cap deploy:cold
Then you should be able to browse to http://production.foo.com (uses /etc/hosts file, so need to set your own domain for the demo). Note that rubber:bootstrap should be idempotent, so feel free to run it multiple times in the event of a failure like a timeout getting gems from rubyforge.
As a convenience, you could instead run “cap rubber:create_staging” to automate the above for a single instance.
For a more complex production setup
ALIAS=web01 ROLES=web,haproxy cap rubber:create
ALIAS=app01 ROLES=app cap rubber:create
ALIAS=app02 ROLES=app cap rubber:create
ALIAS=db01 ROLES=mysql_master cap rubber:create
ALIAS=db02 ROLES=mysql_slave cap rubber:create
cap rubber:bootstrap
cap deploy:setup
cap deploy:cold
To add another app server to an existing deployment
ALIAS=app03 ROLES=app cap rubber:create
cap rubber:bootstrap
cap deploy





