Earlier quoted context omitted.
An idempotent provisioner would be a better option. Ansible is my favorite.
I've tried Ansible and Puppet, but I just never could get used to them or like them. I like the shell provisioner because I know EXACTLY what it's doing. I can provision a server myself, I have the knowledge and understanding to. I can type up the commands in a bash script to provision it faster than I could learn exactly what Ansible or Puppet or Chef are doing when I tell it to install Nginx.
I can only imagine your current bash-scripts are awesome and do tons of stuff for you, but I'd really like to suggest you give ansible another go, and ignore the different files for roles/vars/tasks in the beginning, just dump everything into one playbook, like your bash scripts do currently.