So I’m at the point in my chef buildout that I need to start working on application deploys. The deploy resource is clear enough to work with. My question is, how do I trigger a deployment?
I understand that if I use the ‘revision’ deploy strategy, I can set up a branch for the production environment and trigger deploys by promoting to that branch and waiting for the next chef run, but the guys I’m working with aren’t crazy about that (and I have my hesitations as well). Right now, the only alternative I can see is to keep the deploy action disabled normally and when we want to deploy: enable deploy, ssh to all the servers and run the client, disable deploy.
So how does everyone else do this? The part of the above I really dont like is the “ssh to all the servers” part. I dont like using ssh for command and control - shell is too fragile and generic (try managing 120+ applications on 1500+ servers with nothing but ssh + scripts… bad experience), ssh key management is a pain, etc. This leads into my side question: is there some other way to trigger (push) a chef run?
FWIW the apps I’m working with right now are jruby on rails apps deployed in glassfish (using the glassfish gem) and some miscellaneous jruby daemons started with hashdot.
As usual, any insight or discussion is appreciated