Manage Parallels Desktop VMs with prlctl
and prlsrvctl
. Only some of
the prlctl commands implemented so far. Of those that have been implemented,
not all of the options may have been provided yet. For a complete reference,
see the Parallels Desktop Reference Guide.
This module requires the prlctl binary to be installed to run most functions. To run parallels.prlsrvctl, the prlsrvctl binary is required.
What has not been implemented yet can be accessed through parallels.prlctl
and parallels.prlsrvctl
(note the preceding double dash --
as
necessary):
salt '*' parallels.prlctl installtools macvm runas=macdev
salt -- '*' parallels.prlctl capture 'macvm --file macvm.display.png' runas=macdev
salt -- '*' parallels.prlsrvctl set '--mem-limit auto' runas=macdev
Added in version 2016.3.0.
Clone a VM
Added in version 2016.11.0.
name (str) -- Name/ID of VM to clone
new_name (str) -- Name of the new VM
linked (bool) -- Create a linked virtual machine.
template (bool) -- Create a virtual machine template instead of a real virtual machine.
runas (str) -- The user that the prlctl command will be run as
Example:
salt '*' parallels.clone macvm macvm_new runas=macdev
salt '*' parallels.clone macvm macvm_templ template=True runas=macdev
Delete a VM
Added in version 2016.11.0.
name (str) -- Name/ID of VM to clone
runas (str) -- The user that the prlctl command will be run as
Example:
salt '*' parallels.exec macvm 'find /etc/paths.d' runas=macdev
Delete a snapshot
Note
Deleting a snapshot from which other snapshots are dervied will not delete the derived snapshots
name (str) -- Name/ID of VM whose snapshot will be deleted
snap_name (str) -- Name/ID of snapshot to delete
runas (str) -- The user that the prlctl command will be run as
all (bool) --
Delete all snapshots having the name given
Added in version 2016.11.0.
Example:
salt '*' parallels.delete_snapshot macvm 'unneeded snapshot' runas=macdev
salt '*' parallels.delete_snapshot macvm 'Snapshot for linked clone' all=True runas=macdev
Run a command on a VM
name (str) -- Name/ID of VM whose exec will be returned
command (str) -- Command to run on the VM
runas (str) -- The user that the prlctl command will be run as
Example:
salt '*' parallels.exec macvm 'find /etc/paths.d' runas=macdev
Query whether a VM exists
Added in version 2016.11.0.
name (str) -- Name/ID of VM
runas (str) -- The user that the prlctl command will be run as
Example:
salt '*' parallels.exists macvm runas=macdev
List the snapshots
name (str) -- Name/ID of VM whose snapshots will be listed
snap_id (str) -- Name/ID of snapshot to display information about. If tree=True
is
also specified, display the snapshot subtree having this snapshot as
the root snapshot
tree (bool) -- List snapshots in tree format rather than tabular format
names (bool) -- List snapshots as ID, name pairs
runas (str) -- The user that the prlctl command will be run as
Example:
salt '*' parallels.list_snapshots macvm runas=macdev
salt '*' parallels.list_snapshots macvm tree=True runas=macdev
salt '*' parallels.list_snapshots macvm snap_name=original runas=macdev
salt '*' parallels.list_snapshots macvm names=True runas=macdev
List information about the VMs
name (str) --
Name/ID of VM to list
Changed in version 2016.11.0: No longer implies info=True
info (str) -- List extra information
all (bool) -- List all non-template VMs
args (tuple) -- Additional arguments given to prctl list
runas (str) -- The user that the prlctl command will be run as
template (bool) --
List the available virtual machine templates. The real virtual machines will not be included in the output
Added in version 2016.11.0.
Example:
salt '*' parallels.list_vms runas=macdev
salt '*' parallels.list_vms name=macvm info=True runas=macdev
salt '*' parallels.list_vms info=True runas=macdev
salt '*' parallels.list_vms ' -o uuid,status' all=True runas=macdev
Execute a prlctl command
sub_cmd (str) -- prlctl subcommand to execute
args (str) -- The arguments supplied to prlctl <sub_cmd>
runas (str) -- The user that the prlctl command will be run as
Example:
salt '*' parallels.prlctl user list runas=macdev
salt '*' parallels.prlctl exec 'macvm uname' runas=macdev
salt -- '*' parallels.prlctl capture 'macvm --file macvm.display.png' runas=macdev
Execute a prlsrvctl command
Added in version 2016.11.0.
sub_cmd (str) -- prlsrvctl subcommand to execute
args (str) -- The arguments supplied to prlsrvctl <sub_cmd>
runas (str) -- The user that the prlsrvctl command will be run as
Example:
salt '*' parallels.prlsrvctl info runas=macdev
salt '*' parallels.prlsrvctl usb list runas=macdev
salt -- '*' parallels.prlsrvctl set '--mem-limit auto' runas=macdev
Reset a VM by performing a hard shutdown and then a restart
name (str) -- Name/ID of VM to reset
runas (str) -- The user that the prlctl command will be run as
Example:
salt '*' parallels.reset macvm runas=macdev
Restart a VM by gracefully shutting it down and then restarting it
name (str) -- Name/ID of VM to restart
runas (str) -- The user that the prlctl command will be run as
Example:
salt '*' parallels.restart macvm runas=macdev
Revert a VM to a snapshot
name (str) -- Name/ID of VM to revert to a snapshot
snap_name (str) -- Name/ID of snapshot to revert to
runas (str) -- The user that the prlctl command will be run as
Example:
salt '*' parallels.revert_snapshot macvm base-with-updates runas=macdev
Create a snapshot
name (str) -- Name/ID of VM to take a snapshot of
snap_name (str) -- Name of snapshot
desc (str) -- Description of snapshot
runas (str) -- The user that the prlctl command will be run as
Example:
salt '*' parallels.create_snapshot macvm snap_name=macvm-original runas=macdev
salt '*' parallels.create_snapshot macvm snap_name=macvm-updates desc='clean install with updates' runas=macdev
Attempt to convert a snapshot ID to a snapshot name. If the snapshot has no name or if the ID is not found or invalid, an empty string will be returned
name (str) -- Name/ID of VM whose snapshots are inspected
snap_id (str) -- ID of the snapshot
strict (bool) -- Raise an exception if a name cannot be found for the given snap_id
runas (str) -- The user that the prlctl command will be run as
Example data
ID: {a5b8999f-5d95-4aff-82de-e515b0101b66}
Name: original
Date: 2016-03-04 10:50:34
Current: yes
State: poweroff
Description: original state
CLI Example:
salt '*' parallels.snapshot_id_to_name macvm a5b8999f-5d95-4aff-82de-e515b0101b66 runas=macdev
Attempt to convert a snapshot name to a snapshot ID. If the name is not found an empty string is returned. If multiple snapshots share the same name, a list will be returned
name (str) -- Name/ID of VM whose snapshots are inspected
snap_name (str) -- Name of the snapshot
strict (bool) -- Raise an exception if multiple snapshot IDs are found
runas (str) -- The user that the prlctl command will be run as
CLI Example:
salt '*' parallels.snapshot_id_to_name macvm original runas=macdev
Start a VM
name (str) -- Name/ID of VM to start
runas (str) -- The user that the prlctl command will be run as
Example:
salt '*' parallels.start macvm runas=macdev
Status of a VM
name (str) -- Name/ID of VM whose status will be returned
runas (str) -- The user that the prlctl command will be run as
Example:
salt '*' parallels.status macvm runas=macdev
Stop a VM
name (str) -- Name/ID of VM to stop
kill (bool) -- Perform a hard shutdown
runas (str) -- The user that the prlctl command will be run as
Example:
salt '*' parallels.stop macvm runas=macdev
salt '*' parallels.stop macvm kill=True runas=macdev