Well and good, but now imagine a tornado comes and wipes all three away. Now you need to
reconstitute your network, and you need to start with your Cobbler server, because
you're about to kickstart a whole bunch of machines. You have to install the OS
manually on that server, but then installing and configuring Cobbler the way you run it at
your site is an item of "config setup," which you want Puppet to know about and
do.
Cobbler can help you control your DHCP and DNS and get all of those machines and hostnames
back, so it's a lot more concerned with low level datacenter bits. I would want
those services running first, before configuration management. I would use Cobbler to
install the OS that the config box runs on, just like I'd use it to install the OS
that my package mirroring comes from. Cobbler probably manages the mirror of the puppet
repo itself, in many cases. This is not hard to back up.
I would use cobbler replicate for disaster recovery purposes or include /var/lib/cobbler
and /etc/cobbler for backup purposes to quickly get your config back. Nightly backups
should be sufficient, or you could do the git thing.