I'm new to Puppet and while I've been using *nix systems for many years, I've never worked as a sysadmin or in ops.
I'm currently writing Puppet manifests for hosting a set of (PHP/MySQL/MongoDB, code in git) web applications. Clearly Puppet needs to have some knowledge of the actual applications because I'll set up a virtual host for each one, but I'm not sure whether Puppet should be managing things like code deployment and database creation.
Is Puppet an appropriate tool for application deployment? If not, can you recommend a more appropriate tool?