Back in December I wrote a simple stand-alone Puppet provisioner for Vagrant. I finally got around to writing another provisioner that handles Puppet in client-server mode. It allows you to create a Vagrant VM and specify a Puppet server to connect to, and the ability to control the node name of the Vagrant VM. If the Puppet server has node configuration for the Vagrant VM (and you sign a certificate etc) then this configuration will be applied on the VM. The provisioner starts a Puppet client that will continue to run and update the VM’s configuration. The provisioner is available in Vagrant 0.7.0 and you can see the documentation here.
Thanks hugely to Mitchell Hashimoto, both for Vagrant and the work he did to make both Puppet provisioners more elegant and configurable!