Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

libvirtd/libvirtd-desktop: Add libvirtdbus docs #18

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 25 additions & 1 deletion libvirtd-desktop/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,33 @@
```
$ sudo systemd-sysusers /usr/lib/sysusers.d/libvirt-qemu.conf
```
- Create the `libvirtdbus` user and group:
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's use systemd-sysusers config instead

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's not an existing config to create the libvirt group & libvirtd user/group via systemd-sysusers in fedora-sysexts/libvirtd-desktop/rootfs/usr/lib/sysusers.d/ dir, (only clevis.conf & libvirt-qemu.conf) but I'd be glad to make one.

Here's what I came up with:

$ cat ./libvirt-daemon-sysusers.conf
g libvirt -

$ sudo systemd-sysusers ./libvirt-daemon-sysusers.conf
Creating group 'libvirt' with GID 963.

$ cat ./libvirt-dbus-sysusers.conf
u libvirtdbus - "Libvirt D-Bus bridge" / /sbin/nologin

$ sudo systemd-sysusers ./libvirt-dbus-sysusers.conf
Creating group 'libvirtdbus' with GID 964.
Creating user 'libvirtdbus' (Libvirt D-Bus bridge) with UID 964 and GID 964.

If we go this route, would the plan be to add the actual file creation step into the Justfile (like the manual work for netcat), with a destination of rootfs/usr/lib/sysusers.d/, so the files are included in the sysext .raw package?

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ideally those should be provided upstream so we should report that there somewhere. Not sure why they are not already. We can include them here in the meantime (you can use the "files" option in the justfile to add them and the COPY one in the containerfile).

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See the iwd sysext for an example: https://github.com/travier/fedora-sysexts/tree/main/iwd

```
$ sudo bash -c 'getent group libvirtdbus >/dev/null || groupadd -r libvirtdbus'
$ sudo bash -c 'getent passwd libvirtdbus >/dev/null || \
useradd -r -g libvirtdbus -d / -s /sbin/nologin \
-c "Libvirt D-Bus bridge" libvirtdbus'
```
- Create the `libvirt` group to allow password-less polkit access to libvirt deamons:
```
$ sudo bash -c 'getent group libvirt >/dev/null || groupadd -r libvirt'
```
- Optional: Add your UID to the libvirt group
```
$ sudo usermod -G -a libvirt $YOUR-UID-HERE
```
- Copy the default libvirt dbus config and fix the selinux label
```
$ sudo cp -a /usr/share/dbus-1/system.d/org.libvirt.conf /etc/dbus-1/system.d/
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should already be the correct location. Maybe we need to ask dbus broker to reload the config instead:

$ sudo systemctl reload dbus-broker.service

$ sudo restorecon -Fv /etc/dbus-1/system.d/org.libvirt.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/libvirtd /etc/
$ sudo cp -a /usr/etc/libvirt /etc/
```
- Optional: Setup auth via polkit (example):
```
Expand All @@ -29,3 +49,7 @@
```
$ sudo systemctl enable --now libvirtd
```
- Enable virtqemud:
```
$ sudo systemctl enable --now virtqemud
```
26 changes: 25 additions & 1 deletion libvirtd/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,33 @@
```
$ sudo systemd-sysusers /usr/lib/sysusers.d/libvirt-qemu.conf
```
- Create the `libvirtdbus` user and group:
```
$ sudo bash -c 'getent group libvirtdbus >/dev/null || groupadd -r libvirtdbus'
$ sudo bash -c 'getent passwd libvirtdbus >/dev/null || \
useradd -r -g libvirtdbus -d / -s /sbin/nologin \
-c "Libvirt D-Bus bridge" libvirtdbus'
```
- Create the `libvirt` group to allow password-less polkit access to libvirt deamons:
```
$ sudo bash -c 'getent group libvirt >/dev/null || groupadd -r libvirt'
```
- Optional: Add your UID to the libvirt group
```
$ sudo usermod -G -a libvirt $YOUR-UID-HERE
```
- Copy the default libvirt dbus config and fix the selinux label
```
$ sudo cp -a /usr/share/dbus-1/system.d/org.libvirt.conf /etc/dbus-1/system.d/
$ sudo restorecon -Fv /etc/dbus-1/system.d/org.libvirt.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/libvirtd /etc/
$ sudo cp -a /usr/etc/libvirt /etc/
```
- Optional: Setup auth via polkit (example):
```
Expand All @@ -29,3 +49,7 @@
```
$ sudo systemctl enable --now libvirtd
```
- Enable virtqemud:
```
$ sudo systemctl enable --now virtqemud
```