VirtualBox module wrapper

Since I lost hope on Vagrant from high complexity to extend to Ruby syntax for VMs configuration I tried to build some simple version of VBoxManage CLI that based on .vagrant configuration (pretty weird data structure with files): https://gist.github.com/mikhailov/8104790

The misconception of Vagrant is the configuration is a Ruby code to execute which is totaly wrong in terms of Ansible approach. Perhaps, many Ansbile users tend to keep Vagrant just to bootstrap VM, that is it, all the provisioning, orchastration and life-cycle management happens via Ansbile.

Ansible has modules set for Rackspace, EC2, DigitalOcean, Azure, AWS and VMware. Is there plan to build the same for VirtualBox without Vagrant?

I do recognize that people often struggle with the Vagrant provisioner.

I’ve occasionally wanted a virtualization abstraction that did not bring on the complexity of vagrant, though I think the one general theme of a vagrant file is the ability to specify a starter image to download, and then some steps to get it prepared before cloning. I like the idea of getting started with a new instance faster, but usually I’m content with cloning existing instances (which is why I personally don’t use vagrant).

A more ansible-native wrapper around VMware, KVM, and Virtualbox could be amusing, though I can’t say I’ve got time to chase it – might be nice to see what something could evolve to, if in python with such an abstraction layer.

Michael, do you have an advice how other devops guys to manage VMs without an overhead?
It would be great if you can share with your approach. Thanks!

For development environments a lot of our workflow often uses repeated configuration on the same box, and a lot of things just run out of source. “make migrate” to run DB migrations and so on.

Though we also do a lot of cloud provisioning, often and usually from scratch, so it’s stuff using the ec2 modules then running a playbook on top of them, etc. I don’t see much need for Vagrant when deploying into cloud VMs, since Ansible can do that, though we do have some folks that are fans.

Mostly I don’t because I liked VMware fusion at the time and didn’t want a proprietary plugin.

But no, everytime we make a code change for something like Ansible Tower we don’t re-run the automation, but Jenkins absolutely does kick off and do provisioning from scratch on those changes, end to end.

Michael,

If you are still interesting in that idea, the VBoxManage CLI script to bring VMs with defined IP address is here: https://gist.github.com/mikhailov/740fbfc58767fc495fe2

Anatoly