Building a Vagrant Box for Parallels
Intro
Generally I just use VirtualBox as my provider when using Vagrant. However, I recently bumped into a scenario where I needed to run a Parallels 9 VM (Windows) and other Ubuntu machines for which I already had Puppet provisioners. Unfortunately, Parallels and Virtualbox do not play nicely together either causing a lockup of the host OSX system or preventing you from starting the VM. To get around this I started researching how to build boxes with Parallels as the provider.
Solution
Install the parallels provider for vagrant:
vagrant plugin install vagrant-parallels
Get VeeWee:
git clone https://github.com/jedi4ever/veewee.git
cd veewee
gem install bundler
bundle install
Download and install the latest Parallels SDK:
wget http://download.parallels.com//desktop/v9/pde.hf1/ParallelsVirtualizationSDK-9.0.24172.951362.dmg
Now you need to define a box to build with VeeWee:
bundle exec veewee parallels define precise32 ubuntu-12.04.3-server-i386
The above command reads from templates/ in veewee and builds a definition. This would work great but unfortunately it does not install guest additions and some other features. I've forked veewee and added an i386 version with some additional scripts to configure the machine here: https://github.com/steveturner/veewee/tree/master/templates/ubuntu-12.04.4-server-i386
Build the box:
bundle exec veewee parallels build 'precise32' --workdir=./
Export the box:
bundle exec veewee parallels export 'precise32' --workdir=./
Add it to Vagrant:
vagrant box add precise32.box precise32
Start your box with the Parallels provider:
vagrant up --provider parallels
Notes and Hangups
The Parallels SDK did not play well with my Homebrew installed Python. I had to run brew unlink python
prior to working with Veewee.
Also, as of February 2014, the buildmap option in veewee does not work with Parallels. You can see the quick fix here: https://github.com/steveturner/veewee/commit/d4bdc63b5e7362622acfd41d38cad964331e9246
Summary
If you don't want to mess with any of this and just want a Parallels provided 32 bit 12.04 LTS box for Vagrant...
vagrant box add precise32 https://s3.amazonaws.com/beauhinks.com/boxes/precise32.box
This box will happily live alongside your existing VirtualBox provided precise32 box.