Please read for an updated status on RailsCasts:
Learn more or hide this
GitHub User: HangingClowns
I usually write a puppet file, then I can use capistrano to pull in the puppet file, install RVM, then ruby, then the puppet gem, then run the puppet config, then I run another cap command to actually deploy the app.
Puppet is nice because it's system agnostic in case you decide to change the distribution of linux.
Why not just use Capistrano for deployment, and use a before stop hook and first stop monit, then after start, start monit?