libvirtd
libvirtd
, qemu-kvm
, swtpm
, virt-install
and guestfs-tools
for server
usage (no GUI support).
See the Virtual Machine Manager Flatpak.
How to use
- Install the sysext
- Create the
qemu
user:$ sudo systemd-sysusers /usr/lib/sysusers.d/libvirt-qemu.conf
- Copy the some default config:
$ sudo cp -a /usr/etc/mdevctl.d /etc/
- Optional: Copy the default libvirtd config (note that it won’t be updated automatically):
$ sudo cp -a /usr/etc/libvirt /etc/
- Optional: Setup auth via polkit (example):
$ sudo cat /etc/polkit-1/rules.d/50-libvirt.rules polkit.addRule(function(action, subject) { if (action.id == "org.libvirt.unix.manage" && subject.isInGroup("wheel")) { return polkit.Result.YES; } });
- Restart libvirtd (via virtqemud, virtnetworkd & virtstoraged):
$ sudo systemctl restart virtqemud.socket virtnetworkd.socket virtstoraged.socket
Versions available
See the libvirtd versions.
Usage instructions
First time setup
Run those commands if you have not yet installed any sysext on your system:
sudo install -d -m 0755 -o 0 -g 0 /var/lib/extensions /var/lib/extensions.d
sudo restorecon -RFv /var/lib/extensions /var/lib/extensions.d
Installation
Define a helper function:
install_sysext() {
SYSEXT="${1}"
URL="https://extensions.fcos.fr/extensions"
sudo install -d -m 0755 -o 0 -g 0 /etc/sysupdate.${SYSEXT}.d
sudo restorecon -RFv /etc/sysupdate.${SYSEXT}.d
curl --silent --fail --location "${URL}/${SYSEXT}.conf" \
| sudo tee "/etc/sysupdate.${SYSEXT}.d/${SYSEXT}.conf"
sudo /usr/lib/systemd/systemd-sysupdate update --component "${SYSEXT}"
}
Install the sysext:
install_sysext libvirtd
Merging
Note that this will merge all installed sysexts unconditionally:
sudo systemctl restart systemd-sysext.service
systemd-sysext status
Updates
Update this sysext using:
sudo /usr/lib/systemd/systemd-sysupdate update --component libvirtd
If you want to use the new version immediately, make sure to refresh the merged sysexts:
sudo systemctl restart systemd-sysext.service
systemd-sysext status
To update all sysexts on a system:
for c in $(/usr/lib/systemd/systemd-sysupdate components --json=short | jq --raw-output '.components[]'); do
sudo /usr/lib/systemd/systemd-sysupdate update --component "${c}"
done