If scaling is a issue, you can have a masterless deployment, using git and running puppet with cron ( http://current.workingdirectory.net/posts/2011/puppet-without-masters/ ).
You just need to deploy your config, using cron ( and the vcs of your choice ), and to apply it, using cron too ( or fabric, or mcollective ). Then the only thing that need to scale is the vcs server, and this is much easier to do.
You can even simply use rsync or nfs, and I think serving a few thousand server would not be a problem.