We have been missing automated deployments all along.
Recently we looked at Ansible, Chef, Puppet and picked Ansible for out deployment automation.
It has the advantage of being agent-less which means you do not need an agent on the destination machines in order to manage them. Everything is done remotely via ssh.
Although having agents is not necessarily a bad thing and that will became part of the fabric of your provisioning but agent-less tools enable you to hit the ground faster.
I think the main advantage of Ansible is that it’s easy to learn and apply. We were able to automate the deployment of a relatively complex project in just few weeks.
It has numerous modules to do anything you might think of, such as yum, copy, run command, git, etc.
I am going to use it for my personal projects as well replacing bash scripts…