I agree with @droleary, I also choose Ansible. It's a good fit for the raspi because of the way is uses python on the remote device to do its work.
I use Ansible to manage ~5 Pis. As soon as I do a little initial setup to get an SSH key on a new Pi I can immediately run an Ansible playbook to add it to the fleet.
For deploying apps, it's nice to be able to target specific pis or groups of pis via Ansible's inventory. http://docs.ansible.com/ansible/latest/ ... ntory.html
I also make roles for things like base packages, wifi, and the apps I want to run. Then I collect roles into playbook and run those to 'make' fully working app installations on a pi that I can take out and use. It's basically following most of Ansible's suggestions about how to use their tools.
Here's an app I made using Ansible to configure a pi as an Icecast ez-stream audio source: https://github.com/johnelliott/raspi-livestream-box
. Most of the code is configuring the pi. I can use the code to configure a whole fleet the same way or each a little different.
I encourage you to check out Ansible and at least try setting up an inventory file and running some ad-hoc commands: http://docs.ansible.com/ansible/latest/ ... t-commands