title: What is a good API or way to create VMs programatically?
body: <p>I'm working on a project where I think of distributing tasks to VMs that are dynamically managed (created, destroyed, paused, run processes from host, etc). I was wondering what would be a good approach or API to accomplish the management of the VMs. Below are some examples of what I'm thinking but I wanted to get some guidance on the best approach. </p>
  
  <ul>
  <li><a href="https://github.com/guigarage/vagrant-binding" rel="nofollow">Vagrant-binding</a>: it looked perfect but it out of date and not supported.</li>
  <li><a href="https://github.com/coherence-community/oracle-tools" rel="nofollow">Oracle Tools</a>: the vagrant module looks interesting but there isn't much documentation and I'm a bit confused on how to actually use it.</li>
  <li><a href="https://www.virtualbox.org/sdkref/" rel="nofollow">VirtualBox sdk</a>: I'm a bit confused on the setup of this.</li>
  </ul>
  
  <p>As you can see from the examples I was thinking in Java but I'm open to working on other languages. This project academic in nature and I'm a student so I know that this might not be the most practical thing to do but I wanted to see if it possible and what would be best way to accomplish it.</p>