XCP-ng Automation

Basic VM Management

1xe vm-list

Start, stop, et c. with xe:

1xe vm-start vm=$TARGET_VM
1xe vm-shutdown vm=$TARGET_VM

Destruction requires the uuid.

1xe vm-destroy uuid=$TARGET_UUID

Autocompletion works well with all of these commands.

Shut Down VM

List VMs.

1xe host-list
1xe vm-list resident-on=$HOST_UUID
1xe vm-shutdown uuid=TARGET_VM force=true

If this doesn't work, try:

1xe vm-reset-powerstate uuid=TARGET_VM force=true

Get the id:

1list_domains

And destroy the domain:

1/opt/xensource/debug/xenops destroy_domain -domid $DOM_ID

Problem Solving

Error: Internal error:xenopsd internal error: Storage_interface.Illegal_transition in XenServer

After a failed “Move VM”, “Copy VM”, or “Export VM” operation, the Virtual Machine (VM) being operated cannot start.

Solution

To resolve this error, complete the following procedure:

Open the Console to the XenServer that is hosting the VM and run the following command:

1list_domains

All the VMs running on that server are displayed.

Copy the UUID corresponding to id=0.

This is the UUID of the Control Domain. The Control Domain is a privileged Virtual Machine that handles all hyper calls received from running VMs to perform all virtual tasks.

Run the following command to obtain the UUID of the VBD (Virtual Block Device) object linking the Control Domain:

1xe vbd-list vm-uuid=$CONTROL_DOMAIN_UUID

Run the following commands to unplug and destroy the VBD:

1xe vbd-unplug uuid=$VBD_UUID
1xe vbd-destroy uuid=$VBD_UUID

Make a local iso repository

1xe sr-create name-label=LocalISO type=iso device-config:location=/var/opt/xen/ISO_Store device-config:legacy_mode=true content-type=iso

This creates a UUID for the new directory, e.g.:

e94e25bb-bcdc-801b-b62a-b51b686a3bdc

Import

1xe vm-import filename="$FILENAME".xva

USB

Attach

Put in the USB.

Get the USB's uuid.

1xe pusb-list

Make the USB recognised as a device.

1xe pusb-param-set uuid=*<uuid>*

For passthrough, use this:

1xe pusb-param-set uuid=*<uuid>* passthrough-enabled=true

Attach to host

(requires reboot of guest)

link

Storage Spaces - "SR"

1xe sr-list

Exporting and Exporting VMs

1xe vm-export vm=$VM_NAME filename="$FULL_PATH".xva
1xe vm-import vm=*<Name>* filename="$FULL_PATH".xva