Package: libcloud-vagrant
libcloud-vagrantis a compute provider forApache Libcloudwhich usesVagrantto createVirtualBoxnodes.Withlibcloud-vagrantinstalled, you could prototype a small cluster on
your laptop, for instance, and then deploy it later on to Amazon, Rackspace,
or any of the other clouds supported by Libcloud.Hello, worldThe following snippet spins up a virtual machine running on your host:from libcloud.compute.providers import get_driver

from libcloudvagrant import VAGRANT


driver = get_driver(VAGRANT)()

pub = driver.ex_create_network(name="pub", cidr="172.16.0.0/16", public=True)

node = driver.create_node(name="n1",
                          image=driver.get_image("hashicorp/precise64"),
                          size=driver.list_sizes()[0],
                          ex_networks=[pub])

print "Node '%s' running!" % (node.name,)
print ("Connect to it with 'ssh vagrant@%s' (password: 'vagrant')" %
       (node.public_ips[0],))Featureslibcloud-vagrantuses Vagrant to create boxes, networks and volumes. It
creates a Vagrant environment under~/.libcloudvagrant, which is used
to run as many Vagrant boxes as you define.Nodes created bylibcloud-vagrantmay be connected topublic networksor toprivate networks. Public networks are implemented as VirtualBoxhost-onlynetworks, and private networks are implemented as VirtualBoxinternalnetworks.libcloud-vagrantalso lets you createVDI disks, and attach them to
theSATA controllersof your nodes.Deployment scripts are run through Vagrant’s NAT interface, using
Vagrant’s SSH credentials. Therefore they also work for non-networked
nodes.libcloud-vagrantincludes a command-line tool to do simple
operations with Vagrant nodes created by Libcloud:$ libcloud-vagrant -h
usage: libcloud-vagrant [-h] <cmd>

Manage your Vagrant libcloud environment.

positional arguments:
  <cmd>       command to execute

optional arguments:
  -h, --help  show this help message and exit

Available commands:

    destroy
        Destroys all nodes, networks and volumes in your Vagrant
        environment.

    list
        Lists all nodes, networks and volumes in your Vagrant
        environment.

    screen
        Opens a screen(1) session to all nodes in your Vagrant
        environment.
$libcloud-vagrantisnotthread- or multiprocess-safe. Interactions
with Vagrant and with the Virtualbox command-line tools are protected
with a filesystem-based lock, which (hopefully) serializes things, so
even if they worked, concurrent operations would not give you much
benefit.Requirementslibcloud-vagrantrequires:VirtualBox(tested with version 4.3.14 under 64-bit Linux).Vagrant(tested with version 1.6.3 under 64-bit Linux).Python 2.7.If you want to attach storage volumes to nodes, you’ll need thevagrant-libcloud-helperVagrant plugin. Install it with:$ vagrant plugin install vagrant-libcloud-helperThe following are optional:If you’re behind an HTTP/FTP proxy, the Vagrant pluginvagrant-proxyconfwill modify the nodes created bylibcloud-vagrantto use it.You don’t need to configurevagrant-proxyconf. Install it with:$ vagrant plugin install vagrant-proxyconfInstallationOnce you have installed VirtualBox and Vagrant, do the usual:$ pip install libcloud-vagrantThat will installlibcloud-vagrantand its Python dependencies. You
might want to do that within a virtualenv.More examplesHave a look at thesamplessubdirectory of the source distribution. You
wil find there a few scripts to create a single node, to show you how to
provision it, and a script which creates a two-node cluster.