I've been researching puppet lately, and I think it could be useful to integrate into my deployment pipeline.
Currently, I deploy my apps by manually adding users, creating vhosts, setting directories, and then git cloning my repo from GitHub. I deploy changes with a simple Git pull (Git hooks take care of database migrations, clearing the cache, etc).
With puppet, I could setup a manifest to do the directory creation, permissions and virtual host management for me. To deploy an app to a dev/prod environment, I'd pull the manifest from GitHub and run it locally. I was also thinking about adding the puppet manifest process to the Git hook so every pull, Puppet could ensure directory permissions are OK.
Are there issues with this approach? Things I could do better?