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

Conversation

sahensley
Copy link
Contributor

The additions to the libvirt READMEs are the outcome of my investigation on how to get Cockpit Virtual Machines tab to allow me to manage VMs. I tried to follow the same code style as the existing documentation. Feel free to modify as needed.

Fixes:

  • typo on config copy: sudo cp -a /usr/etc/libvirtd /etc/ -> sudo cp -a /usr/etc/libvirt /etc/

Additions:

  • Added users and groups required to get libvirt-dbus.service working, copied from the libvirtdbus.spec file.
  • Added libvirt group from the libvirt.spec file.
  • Added /etc/dbus-1/system.d/org.libvirt.conf file creation from https://www.libvirt.org/dbus.html
    • TODO: verify this does not grant unintended access
  • Enabled the virtqemud service.

I'm leaving this as a draft PR for now until I get a chance to double-check the added steps.

@@ -7,13 +7,43 @@
```
$ 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 usermod -G -a libvirt $YOUR-UID-HERE
```
- Create the /etc/dbus-1/system.d/org.libvirt.conf file
Copy link
Owner

Choose a reason for hiding this comment

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

Hum, can't we copy this one form /usr/etc isntead?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Good catch! For whatever reason, I completely missed that config file. I've updated the doc to copy it into the correct location and fix the SELinux label.

@travier
Copy link
Owner

travier commented Nov 16, 2024

Thanks!

@sahensley sahensley force-pushed the libvirt-additional-docs branch 2 times, most recently from 600a17a to bb4998c Compare November 22, 2024 03:43
@sahensley sahensley force-pushed the libvirt-additional-docs branch from bb4998c to 97093b3 Compare November 22, 2024 03:46
```
- 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

travier added a commit that referenced this pull request Nov 29, 2024
See: #18
Co-authored-by: Shawn A Hensley <[email protected]>
@travier travier mentioned this pull request Nov 29, 2024
@travier
Copy link
Owner

travier commented Nov 29, 2024

I split some fixes from this in #23 until we figure out the rest. Thanks!

@sahensley
Copy link
Contributor Author

Awesome - thanks! I should have some time to look at this again in the next few days.

I'll get the updates from #23 pulled in and see what else I can figure out.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants