Ditching Vagrant: VMs with KVM and Virsh on Debian

(benjamintoll.com)

47 points | by fanf2 3 days ago

8 comments

  • SkipperCat 6 minutes ago
    This is the first time in my entire life I've ever seen someone use a Plan 9 formatted disk. Deep respect.
  • stefanha 1 hour ago
    virt-builder is an alternative to installing a guest OS from scratch. It has a selection of popular guest OSes template images that you can quickly install non-interactively.

    It's convenient when you don't want to manually install a guest and also don't want to figure out preseed/kickstart/etc.

    It makes creating new KVM guests easier and has handy features like the ability to copy in ssh keys so you can connect to the guest right away.

  • happyPersonR 3 days ago
    There used to be virt-manager

    Wonder if it’s still around ? Hope it’s doing well !

    • creshal 2 hours ago
      "around" is the best way to describe it; the libvirt/virt-manager ecosystem isn't dead, but redhat killing off ovirt/rhev support drained a lot of resources out of it.

      And for some bizarre reason people decided that the much less mature (both organizationally and technologically) proxmox VE is the best thing since sliced bread, so everyone who does care about linux virtualization is now trying to hammer some homelabbers' collection of perl scripts into a replacement.

      It would be funny if it wasn't so sad.

      • bonzini 1 hour ago
        Red Hat is still using and developing libvirt (though the user facing layer is Kubevirt instead of oVirt) and virt-install, and even though virt-manager is not growing new features libvirt takes backwards compatibility extremely seriously, so new libvirt works with relatively old virt-manager.
    • nobody42 1 hour ago
      It's usable (?) as a toy: numerous gui inconsistencies and lack of security isolation [0].

      Can't say whether the of lack funding (move to Cockpit from Red Hat) is the reason, or maintainer is just an obstructionist (strictest feature policy).

      [0] https://github.com/virt-manager/virt-manager/issues/358

    • alexpotato 1 hour ago
      I still use it for home projects and it's great!

      Little wonky to get the config files all setup for a VM but LLMs make that a breeze these days.

    • flyinghamster 1 hour ago
      Until recently, I used it routinely for VMs, and it worked solidly and reliably. There is a ZFS storage backend as well, always nice to see since I've loved to use zvols for VMs, even when I did VirtualBox on OpenIndiana back before ZFS on Linux was viable.

      But I found that Proxmox fit my needs much better than wrestling vanilla Ubuntu or Debian into a VM server, particularly for things like backup/restore and instrumentation, or setting up a bridge on a desktop-based installation. Since both are based on QEMU/KVM, it wasn't too hard to move my VMs (one thing you might need to look out for is changing network interface names).

    • MisterTea 3 days ago
      Unfortunately it still exists. Virt manager drives me crazy because it hides the VM files in its own directory with permissions that aren't yours forcing you to use sudo to manually manage your own fucking vm files. Creating a new VM? You're forced to pick an OS by typing the name of your OS into a search box which is tedious and doesnt give you an option for generic x86 machine. I hate it with a burning passion and instead manually manage VMs by reading the qemu man page and writing a script to directly invoke qemu. I'd recommend VirtualBox over it any day.
      • jeroenhd 3 hours ago
        I can't say I share your hatred. It's my go-to management interface for VMs like this. Especially because it allows managing a remote libvirt install over SSH, handling things like forwarding the screen and input for you.

        If you don't want to pick an OS preset, you can always just go for "manual install" and a "generic" OS and pick your own preferred configuration later. Or you paste the URL for an online install directory, which is even easier.

        To manage libvirt machine without root, you can add your user to the libvirt group.

      • tremon 2 hours ago
        I don't share your antipathy against libvirt, but I do the same. To configure a qemu vm via libvirt you need to learn two concepts: the qemu internals, and how they're mapped to libvirt properties. And since the qemu internals are mostly documented as command-line switches, you can skip learning the libvirt mappings by just using shell.
      • tosti 2 hours ago
        You can add directories to the storage, including ones in your home directory. Generic is actually the default option, all you have to do is to disable auto-detection.

        It's fine to run qemu directly, but virt-manager ain't bad.

      • Intralexical 2 hours ago
        > Virt manager drives me crazy because it hides the VM files in its own directory with permissions that aren't yours forcing you to use sudo to manually manage your own fucking vm files.

        I just checked my `~/.local/share/libvirt/`. It doesn't do this for me, and I don't think it ever has.

        I do remember having to set this up at some point. Looks like this is it:

        https://unix.stackexchange.com/questions/799034/whats-the-di...

        There are some limits around network ports in User Sessions, but it should suffice for anything you'd use Vagrant for.

        > Creating a new VM? You're forced to pick an OS by typing the name of your OS into a search box which is tedious and doesnt give you an option for generic x86 machine.

        ...There is though? It's in the dropdown under "Generic or unknown OS. Usage is not recommended (generic)". Here it is in the code if you don't believe me:

        https://github.com/virt-manager/virt-manager/blob/c3df2ba/vi...

        And a random tutorial which makes use of it:

        https://cyberlab.pacific.edu/courses/comp178/resources/virtu...

        • bonzini 1 hour ago
          There are two ways to run the Libvirt daemon, which are unprivileged and privileged aka system. You are using unprivileged mode, the parent is using system mode which is more powerful and provides better isolation but does hide stuff in /var.

          For example, running QEMU as its own user and using PCI passthrough is only possible with the system daemon.

          You also need the system daemon to set up bridged networking, though the unprivileged daemon can use it through a setuid helper.

  • zamadatix 3 days ago
    This is another area I hope I'm able to migrate to systemd. I already use nspawn for containers but vmspawn is still a bit new and limited in the options. Once it gets there though it'll be nice to have system+containers+vms under one consistent roof.
  • shellwizard 3 days ago
    Have you tried distrobox/toolbox instead of having to spin up VMs? Also microvm looks nice
  • pollux360 3 minutes ago
    [flagged]
  • s8kur 2 hours ago
    Membership in the libvirt group is root-equivalent, not a permissions fix. Through qemu:///system it lets you attach arbitrary host block devices to a VM, so anyone in that group can mount and read the host's own disk. If you want to manage VMs without root or that group, use qemu:///session instead: unprivileged, images live under ~/.local/share/libvirt, no sudo. Tradeoff is you lose bridged networking without a setuid helper.
  • rom3odelta 35 minutes ago
    [flagged]