Build Base Boxes with Veewee

Warning: Advanced Topic! If you're not familiar with Veewee, you should read the Veewee documentation first.

Veewee must be properly installed in order to build a new base box using one of the existing Veewee templates. If you haven't installed it yet, please refer to the Veewee Installation instructions.

Preparing a definition

List available Veewee templates, choose what you want to use and create a definition:

$ veewee parallels templates
$ veewee parallels define 'my_centos' 'CentOS-6.5-x86_64-minimal'

Since most of the default templates are not ready to be used with the Parallels provider, you need to customize the definition manually.

Navigate to the definition folder and create a parallels.sh script with the following content:

$ vi ./definition/my_centos/parallels.sh

# Install the Parallels Tools
PARALLELS_TOOLS_ISO=prl-tools-lin.iso
mkdir -p /media/cdrom
mount -o loop $PARALLELS_TOOLS_ISO /media/cdrom
/media/cdrom/install --install-unattended-with-deps --progress
umount /media/cdrom

Open the definition.rb file for editing, find the ':postinstall_files' array and add the "parallels.sh" string to it. It should now look like this:

$ vi ./definition/my_centos/definition.rb

...
  :postinstall_files => [
     "base.sh",
     "ruby.sh",
     "chef.sh",
     "puppet.sh",
     "vagrant.sh",
     "parallels.sh",
     "cleanup.sh",
  ],
...

Please observe the following important rules:

  • You can insert "parallels.sh" on any position of this array, but it's necessary to place it between "base.sh" and "cleanup.sh"
  • You also have to comment (or delete) strings like "vbox.sh" or "virtualbox.sh", to prevent VirtualBox customization.

Building a VM Image

After customizing the definition you can start building a vm image:

$ veewee parallels build 'my_centos'

This action can take a long time to complete because it involves downloading the ISO image, installing the OS, and configuring it after the installation.

Exporting

$ veewee parallels export 'my_centos'

The virtual machine will be shut down, exported, and packed in the my_centos.box file inside the current directory. When it's done, you can use it as any other box for the Parallels provider.