All the libvirt
related commands, like virsh
, virt-viewer
or virt-install
take
a connect URI as parameter. The connect URI can be thought as specifying which set of
virtual machines you want to control with that command, which physical machine to control,
and how.
For example, I can use a command like:
virsh -c "xen+ssh://admin@corp.myoffice.net" start web-server
to start the web-server
virtual machine on the xen
cluster running at myoffice.net
,
by connecting as admin
via ssh
to the corresponding server.
If you don't specify any connect URI to virsh
(or any other libvirt related command), by
default libvirt will try to start a VM running as your username on your local machine
(eg, qemu:///session). This unless you are running as root, in which case libvirt will try to
run the image as a system image, not tied to any specific user (eg, qemu:///system).
I generally run most of my VMs as system VMs, and systematically forget to specify which connect
URI to use to commands like virsh
or virt-install
. What is more annoying is that some of
those commands take the URI as -c
while others as -C
.
However, turns out that most of those commands rely on libvirt
, and that libvirt
itself
looks at LIBVIRT_DEFAULT_URI to pick the default connect URI.
All I had to do to have all of those commands use qemu:///system
as default was to edit
my .bahsrc
to have:
export LIBVIRT_DEFAULT_URI="qemu:///system"
logout, login again, and enjoy!