I'm learning my way through configuration management in general and using puppet to implement it in particular. I have already done some generic research (also on SF) and right now I'm considering Apache VirtualHosts.
We host a lot of LAMP websites (it's currently in the hundreds range) on two systems: an Apache2/mod_php one and a MySQL one - basically the opposite of another question already on SF where he manages lots of servers with few vhosts each (if not actually one, I don't know). I have not yet put together a working config in puppet but it shouldn't be a problem, there are many examples and recipes out there.
In addition to the obvious apache configuration file(s) (no problem here I guess) every vhost would need to have some directories created and permissions checked (eg. a root dir for each vhost containing a documentroot, a dedicated tmp dir, a dedicated php session files dir, possibly SSL certificates, and so on) on the webserver, and a user + one or more databases on the MySQL server.
Adding a new vhost would require puppet to create those, removing one would require puppet to run some script that will backup user data and then remove the live data from the two servers, but also each and every puppet agent run would then check the existence of the directories, the db, permissions, etc.
Am I asking for trouble when going up to hundreds of virtualhost with all those checks running at every puppet run, especially the filesystem ones (on the webserver), and especially when in the future the systems will be loaded up more? (let's say we target the 1000~2000 websites range as a reasonable per-server maximum).
Is there any experience in doing that out there on the net? I googled but found nothing, also because there is a low signal/noise ratio when searching for "puppet" and "apache"...