ansible-pull works great for this.
basically you can use regular-SSH-ansible to set up ansible on a
crontab to run periodically against the latest checkout in a source
control repo (currently requires git).
It's documented a bit on the docs site (needs a bit more)
http://ansible.github.com/playbooks2.html#pull-mode-playbooks
And here is the setup script:
https://github.com/ansible/ansible/blob/devel/examples/playbooks/ansible_pull.yml
https://github.com/ansible/ansible/blob/devel/examples/playbooks/templates/ansible-pull.j2
You can modify the cron tab for it to run as often as you like.