virtual machines – Using Puppet to configure hypervisor

I am looking to use Puppet to configure a bare-metal host to spawn VMs using Vagrant/VirtualBox, whose configurations will also be managed by Puppet.

I think this can be achieved by:

  1. Installing Vagrant/Virtualbox on the host using the below-mentionned Puppet modules.
  2. Creating pre-written Vagrantfiles using Puppet.
  3. Running a custom service that periodically runs vagrant up on a list of Vagrantfile targets.

I can find a ton of resources on how to provision VMs using Vagrant/Virtualbox and configuring them using Puppet, but little on how to configure the host that is serving as a hypervisor using Puppet other than Puppet modules for installing Vagrant and Virtualbox, respectively. This makes me doubt whether I am approaching the problem correctly – and whether I overlooked a more obvious implementation.

What do you think?