Currently I have all of my deployment scripts in shell, which installs about 10 programs and configures them. The way I see it shell is a fantastic tool for this:
Modular: Only one program per script, this way I can spread the programs across different servers.
Simple: Shell scripts are extremely simple and don't need any other software installed.
One-click: I only have to run the shell script once and everything is setup.
Agnostic: Most programmers can figure out shell and don't need to know how to use a specific program.
Versioning: Since my code is on GitHub a simple Git pull and restart all of supervisor will run my latest code.
With all of these advantages, why is it people are constantly telling me to use a tool such as Ansible or Chef, and not to use shell?