While the Parallels provider is a drop-in replacement for VirtualBox, there are additional features that allow you to more finely configure Parallels-specific aspects of your machines.

Virtual Machine Name

You can customize the virtual machine name that appears in the Parallels Desktop GUI. By default, Vagrant sets it to the name of the folder containing the Vagrantfile plus a timestamp of when the machine was created.

To change the name, set the name property to the desired value:

config.vm.provider "parallels" do |prl| = "my_vm"

Create VM as a Linked Clone

Note: This feature is available only with Parallels Desktop 11 or higher.

When you run vagrant up for the first time, the new virtual machine will be created by cloning the box image. By default the Parallels provider creates a regular clone, e.q. the full copy of the box image.

You can configure it to create a linked clone instead:

config.vm.provider "parallels" do |prl|
  prl.linked_clone = true

Difference between linked and full clones:

  • Linked clone creation is extremely faster than the full cloning, because there is no image copying process.
  • Linked clone requires much less disk space, because initially its hard disk image is less than 1Mb (it is bound to the parent's snapshot).
  • Full clone is a full image copy, which is independent from the box. Linked clones are bound to the specific snapshot of the box image. It means that box deletion will cause all its linked clones being corrupted. Then please, delete your boxes carefully!

Parallels Tools Auto-Update

Parallels Tools is a set of Parallels utilities that ensures a high level of integration between the host and the guest operating systems (read more: Parallels Tools Overview).

By default the Parallels provider checks the status of Parallels Tools after booting the machine. If they are outdated or newer, a warning message will be displayed.

You can configure the Parallels provider to update Parallels Tools automatically:

config.vm.provider "parallels" do |prl|
  prl.update_guest_tools = true

This option is disabled by default because of Parallels Tools installation takes a significant time (2-6 minutes). Anyway, it runs only when there is a version mismatch.

Also, you can completely disable the Parallels Tools version check, if you want:

config.vm.provider "parallels" do |prl|
  prl.check_guest_tools = false

In this case the both of Parallels Tools status check and an automatic update procedure will be skipped as well.

Customization with prlctl

Parallels Desktop includes the prlctl command-line utility that can be used to modify the virtual machines settings.

The Parallels provider allows to execute the prlctl command with any of the available options just prior to booting the virtual machine:

config.vm.provider "parallels" do |prl|
  prl.customize ["set", :id, "--device-set", "cdrom0", "--image",
               "/path/to/disk.iso", "--connect"]

In the example above, the virtual machine is modified to have a specified ISO image mounted on its virtual media device (cdrom). The :id parameter is replaced with the actual virtual machine ID.

Multiple customize directives can be used simultaneously. They will be executed in the given order.

A simple way is provided to change the memory and CPU settings:

config.vm.provider "parallels" do |prl|
  prl.memory = 1024
  prl.cpus = 2

You can read the Command-Line Reference for the complete information about the prlctl command and its options.