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)
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