Skip to content

Instantly share code, notes, and snippets.

Last active August 17, 2022 14:11
What would you like to do?
set -e
remote="${REMOTE_HOST:?'Set REMOTE_HOST environment variable'}"
for guest in "$@" ; do
xml="$( mktemp XXXXXXXX.xml )"
trap "rm -fv '$xml'" EXIT
ssh root@"$remote" virsh dumpxml "$guest" | \
xmlstarlet ed \
-u '/domain/os/type[starts-with(@machine, "pc-i440fx")]/@machine' -v pc \
-u '/domain/os/type[starts-with(@machine, "rhel")]/@machine' -v pc \
-u '/domain/devices/video/model[@type="qxl"]/@type' -v virtio \
-d '/domain/devices/video/model[@type="virtio"]/@ram' \
-d '/domain/devices/video/model[@type="virtio"]/@vram' \
-d '/domain/devices/video/model[@type="virtio"]/@vgamem' \
-d '/domain/devices/graphics[@type="spice"]/@port' \
-i '/domain/devices/graphics[@type="spice"]' -t attr -n port -v -1 \
-u '/domain/devices/graphics[@type="spice"]/@type' -v vnc \
-d '/domain/devices/channel[@type="spicevmc"]' \
-d '/domain/devices/redirdev[@type="spicevmc"]' \
> "$xml"
virsh define "$xml"
rm -fv "$xml"
trap - EXIT
virsh autostart "$guest"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment