2022-01-16 18:20:39 +00:00
---
2022-06-18 13:49:30 +00:00
title: "XCP-ng Automation"
2022-02-04 08:24:02 +00:00
tags: [ "documentation", "virtualization", "xen" ]
2022-01-16 18:20:39 +00:00
---
2020-02-24 08:46:06 +00:00
# Basic VM Management
> xe vm-list
Start, stop, et c. all done with `xe` :
2022-02-03 19:10:47 +00:00
> xe vm-start vm=*TTS*
2020-02-24 08:46:06 +00:00
2022-02-03 19:10:47 +00:00
> xe vm-shutdown vm=*Bob*
2020-02-24 08:46:06 +00:00
Destruction requires the uuid.
2022-02-03 19:10:47 +00:00
> xe vm-destroy uuid=*243b1165-14aa-37f6-496f-44879d05b3f2*
2020-02-24 08:46:06 +00:00
2020-01-02 00:04:35 +00:00
# Shut Down VM
List VMs.
> xe host-list
2022-02-03 19:10:47 +00:00
> xe vm-list resident-on=*<uuid_of_host>*
2020-01-02 00:04:35 +00:00
2022-02-03 19:10:47 +00:00
> xe vm-shutdown uuid=*<UUID from step 3>* force=true
2020-01-02 00:04:35 +00:00
If this doesn't work, try:
2022-02-03 19:10:47 +00:00
> xe vm-reset-powerstate uuid=*<UUID from step 3>* force=true
2020-01-02 00:04:35 +00:00
Get the id:
> list_domains
And destroy the domain:
2022-02-03 19:10:47 +00:00
> /opt/xensource/debug/xenops destroy_domain -domid *<DOMID from step 7>*
2020-01-02 00:04:35 +00:00
2020-02-24 08:46:06 +00:00
# Error: `Internal error:xenopsd internal error: Storage_interface.Illegal_transition` in XenServer
2020-01-02 00:04:35 +00:00
## Symptoms or Error
After a failed “Move VM”, “Copy VM”, or “Export VM” operation, the Virtual Machine (VM) being operated cannot start. Following is the error message displayed:
`User-added image`
## 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:
2022-02-03 19:10:47 +00:00
> xe vbd-list vm-uuid=*<uuid of the Control Domain>*
2020-01-02 00:04:35 +00:00
Run the following commands to unplug and destroy the VBD:
2022-02-03 19:10:47 +00:00
> xe vbd-unplug uuid=*<uuid of the vbd>*
2020-01-02 00:04:35 +00:00
2022-02-03 19:10:47 +00:00
> xe vbd-destroy uuid=*<uuid of the vbd>*
2020-01-02 00:04:35 +00:00
## 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:
`e94e25bb-bcdc-801b-b62a-b51b686a3bdc`
# Import
2022-02-03 19:10:47 +00:00
xe vm-import filename=*/mnt/blah.xva*
2020-01-02 00:04:35 +00:00
# USB
2020-02-24 08:46:06 +00:00
## Attach
2020-01-02 00:04:35 +00:00
Put in the USB.
Get the USB's uuid.
> xe pusb-list
Make the USB recognised as a device.
2022-02-03 19:10:47 +00:00
> xe pusb-param-set uuid=*<uuid>*
2020-01-02 00:04:35 +00:00
For passthrough, use this:
2022-02-03 19:10:47 +00:00
> xe pusb-param-set uuid=*<uuid>* passthrough-enabled=true
2020-01-02 00:04:35 +00:00
## Attach to host
(requires reboot of guest)
[link ](https://github.com/xcp-ng/xcp/wiki/USB-Pass-Through )
2020-02-24 08:46:06 +00:00
# Storage Spaces - "SR"
> xe sr-list
2020-06-19 13:18:50 +00:00
# Exporting and Exporting VMs
2022-02-03 19:10:47 +00:00
> xe vm-export vm=*<Name>* filename=*/full/path.xva*
2020-06-19 13:18:50 +00:00
2022-02-03 19:10:47 +00:00
> xe vm-import vm=*<Name>* filename=*/full/path.xva*
2020-06-19 13:18:50 +00:00