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:
- Installing Vagrant/Virtualbox on the host using the below-mentionned Puppet modules.
- Creating pre-written Vagrantfiles using Puppet.
- Running a custom service that periodically runs
vagrant upon 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?