Ssh – Application deployment over ssh

deploymentsoftware installationssh

My job requires frequently updating versions of Centos-compiled software on customers PCs over multiple ssh hops. Recently this got to the point of unmanageable by hand. What software can be utilized to automate the process?

What I need is something that will accept a bunch of updated files, transfer them over scp/ssh and automatically run unpack/replace script on remote host. Is there such software or is that writable by simple bash scripting?

Ideally, what I want is to write(on my own machine) "helperappname hostname packagefile" and have helper app perform the deployment. or something like that.

Best Answer

If all your target machines are CentOS, I would really recommend trying to bundle up the apps as RPMs. Once you get through that once, you can easily automate the bundling of newer versions, and deployment becomes a simple matter of setting up a repo accessible to all the destination servers (which may have difficulties of it's own) and running a simply "yum update" or "yum install" command on each client you want the software updated / installed on. The time investment will be somewhat large - on the order of a week or two if you learn fast - but your return will be huge - reducing installation time to under 30 seconds on each target machine.

Related Question