XCP-ng Automation
Basic VM Management
xe vm-list
Start, stop, et c. with xe
:
xe vm-start vm=$TARGET_VM
xe vm-shutdown vm=$TARGET_VM
Destruction requires the uuid.
xe vm-destroy uuid=$TARGET_UUID
Autocompletion works well with all of these commands.
Shut Down VM
List VMs.
xe host-list
xe vm-list resident-on=$HOST_UUID
xe vm-shutdown uuid=TARGET_VM force=true
If this doesn’t work, try:
xe vm-reset-powerstate uuid=TARGET_VM force=true
Get the id:
list_domains
And destroy the domain:
/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:
list_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:
xe vbd-list vm-uuid=$CONTROL_DOMAIN_UUID
Run the following commands to unplug and destroy the VBD:
xe vbd-unplug uuid=$VBD_UUID
xe vbd-destroy uuid=$VBD_UUID
Make a local iso repository
xe 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
xe vm-import filename="$FILENAME".xva
USB
Attach
Put in the USB.
Get the USB’s uuid.
xe pusb-list
Make the USB recognised as a device.
xe pusb-param-set uuid=*<uuid>*
For passthrough, use this:
xe pusb-param-set uuid=*<uuid>* passthrough-enabled=true
Attach to host
(requires reboot of guest)
Storage Spaces - “SR”
xe sr-list
Exporting and Exporting VMs
xe vm-export vm=$VM_NAME filename="$FULL_PATH".xva
xe vm-import vm=*<Name>* filename="$FULL_PATH".xva