A tiny "Deployer" made with Shell Script and Rsync

Felippe Regazio on October 19, 2019

So, there is all that stuff outside there, huhn? Containers, Continuous Integration, Git Deployment, Pipes etc. And they are awesome, in fact. But... [Read Full]
markdown guide

2 hours of learning Ansible & I had the same kind of thing working on a legacy app.

This even worked on a shared host with no root access.

Might make more sense to spend effort on a tool that can scale with you.


Ansible needs python at remote site. Sure many distros already have python in default installation. But if python is not available (legacy, old, no-auth?) or you prefer shell scripting, than sh-simple-deployer and cdist are good candidates.

I prefer Ansible but it's not a 2 h tool. Only if I want to print Hello World. Ansible manual is vast and I need a lot of the modules and other concepts (roles, yaml, Jinja, etc) to really say "Wow, this is better/faster than scripting". Maybe a week. :-)


Good point about the python dependency! If you don't have that, it won't work.

But I wasn't exaggerating about the 2 hours to get a useful versioned deploy from Git working. I used the Deploy Helper module as a starting point:


I didn't knew Ansible. Seems really simple and powerful, indeed. I'll try to use it, for sure.


Always good to see someone else using this. I actually have something similar that I did a week or so ago that I also wrote about. I clone the repo and then used rsync to my site directory. Great for older hosting models


From a systems perspective you don't wan to launch a new shell by using sh. Instead ./scriptname.sh whilst in the same directory will work too. And if you have to be root sudo su - will work just as well.


Nice point, Tony. You're right. I updated the post with your information.

code of conduct - report abuse