OpenStack Nova compute driver for VMware Workstation or Player (Windows, Linux) and Fusion (Mac OS X).
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


OpenStack Nova compute driver for VMware Workstation or Player and Fusion.

The main goal of this project is to enable developers, testers and sysadmins to be able to easily deploy virtual workloads on their workstation and laptops using familiar OpenStack tools.

Reasons for choosing VMware Workstation / Player / Fusion over other solutions (e.g. VirtualBox):

1) Support for nested virtualization (VMX, EPT).

This is a mandatory feature for running KVM, Hyper-V or other hypervisors in a virtual machine.

2) Multiplatform

Workstation and Player are supported on Windows and Linux, while Fusion works on Mac OS X.

3) Free option

VMware player is free for non commercial use. Refer to the related license for details.


Deploy OpenStack Havana on your physical laptop / workstation / server or in a virtual machine (e.g. using RDO or DevStack).

Install nova-vix-driver on the machine running VMware Workstation, Player or Fusion:

python install

Create a Nova configuration file (e.g. by copying nova.conf from another compute node) and set the proper compute driver class:


Start nova-compute, making sure to have the Vix dll or shared module in the path.

nova-compute --config-file /path/to/your/nova.conf

Note1: On Windows execute with elevated credentials if UAC is enabled. Failing to do so will result in having the Vix APIs reporting that virtual machines are powered off even when running.

Note2: Since VMware Player does not come with the Vix components, they can be downloaded as part of the Vix SDK:|PLAYER-600-A|drivers_tools


Beside the feature that you'd expect from other Nova drivers, there are a few options specific to this project

Glance image options

The following Glance image properties are recognized by the Vix Nova compute driver.


The virtual machine OS as specified in the VMware VIX configuration file (.e.g.: "rhel6-64" or "winhyperv").


Wether the instances should support nested virtualization. Note: this is implicit if the guest OS is "winhyperv"


Comma separated list of Glance images ids to be attached as virtual DVDRom drives to instances.


Glance image id, to be attached as virtual floppy drive.


VMware tools ISO image to be attached as a virtual DVDRom drive (e.g. "linux", "windows", etc).


Device boot order. Default: "hdd,cdrom,floppy"

Nova compute options

Options that can be specified in the Nova configuration file in the [vix] section: show_gui=False

If true, instance consoles windows will be displayed in WMware Workstation, Player or Fusion.


The guest OS to be used in case a value is not provided by the Glance image.

In the [DEFAULT] section, set the following to true to enable linked clones (not available on VMware Player).


VNC console access is supported as well on Workstation and Fusion.



Here's an example about how to create a CentOS template image by providing a CentOS DVD and a kickstart file in a floppy image:

glance image-create --property hypervisor_type=vix --name CentOS-64-ks --container-format bare \
--disk-format iso < CentOS-6.4-x86_64-bin-DVD1-ks.iso

image-create --name Kickstart --container-format bare --disk-format raw < ks.flp

ISO_IMG_ID=`glance image-show CentOS-64-ks | awk '{if (NR == 9) {print $4}}'`
FLOPPY_IMG_ID=`glance image-show Kickstart | awk '{if (NR == 9) {print $4}}'`

qemu-img create -f vmdk empty.vmdk 10G
glance image-create --name CentOS-64-template --container-format bare --disk-format vmdk \
--property hypervisor_type=vix \
--property vix_tools=linux \
--property vix_iso_images=$ISO_IMG_ID \
--property vix_floppy_image=$FLOPPY_IMG_ID < empty.vmdk
rm empty.vmdk

Now simply boot the image, the "hypervisor_type" property in the image makes sure that it won't be spawned on other hypervisors.

nova boot  --flavor 1 --image CentOS-64-template --key-name key1 centos-64-template1


Due to the nature of this project, live-migration is not supported as it wouldn't make particularly sense.