I spent the last two days trying to figure out how to make a my deploy to a 
Vagrant box run faster. It takes roughly 30 minutes. Not unexpected 
considering that I'm trying to create a box almost from bare metal (i.e., 
it has the OS and pretty much nothing else), but it's too slow for what I 
need.

Part of the process is using knife-solo to provision the box. I wrote a 
rake task for it, called with a "before" hook in Cap. It works just great, 
and Cap manages the entire deploy process, which is nice. The slowdown 
comes when I install Ruby. I'm installing directly from source. It works, 
but man, it's dog slow, even on a beefier AWS box. That one recipe takes 
15-20 minutes to run for a fresh box.

So I experimented with getting rbenv working. It seems to take much less 
time to install Ruby. I have no idea why, but the time drops to about 5 
minutes. Much better. Getting it to work with Cap was a little challenging, 
believe it or not, but I got it working -- until I hit a snag.

Part of my provisioning process is to set up the deploy user in an 
automated fashion. Cap doesn't complain when I don't use the 
capistrano-rbenv gem. As soon as I plug that in, however, the initial 
rbenv:validate check fails because ... the deploy user isn't there yet, of 
course, and rbenv says it can't authenticate.

So I'm stuck. If I don't use rbenv with Cap, the Ruby install takes 
forever. If I use it, I can't deploy until the deploy user is there, and 
it's not there until after I provision the box. Catch-22.

Does anyone have a suggestion about how to escape the conundrum?

-- 
You received this message because you are subscribed to the Google Groups 
"Capistrano" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to capistrano+unsubscr...@googlegroups.com.
To view this discussion on the web, visit 
https://groups.google.com/d/msgid/capistrano/d441a2a9-23cd-4389-85d3-6cbfb7560e4b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to