Lessons Learned: Vagrant + libvirt unter Fedora

Vagrant ist ein beliebtes Tool, wenn es darum geht kurzfristig und ohne weiteres Zutun virtuelle Maschinen zu erstellen.

Vagrant sollte nicht über das offizielle Hashicorp- sondern über die Fedora-Repositories installiert werden - andernfalls müssen Plugins (wie z. B. die libvirt-Integration) manuell übersetzt werden. Auch hatte ich hier Kompatibilitätsprobleme:

1# dnf install vagrant{,-libvirt}

Molecule hingegen sollte über pip installiert werden:

1$ pip3 install --user molecule molecule-vagrant

Einfache Vagrant-Maschinen ohne zusätzliche oder private Netzwerke funktionieren ohne Probleme über die automatisch gewählte Benutzerverbindung (qemu:///session). Kommen hingegen zusätzliche Netzwerke zum Einsatz, erscheint i.d.R. folgender Fehler:

1Network xxx.xxx.xxx.xxx is not available. Specify available network name, or an ip address if you want to create a new network.

Der Grund ist einfach: das Erstellen von Netzen erfordert höhere Rechte - hierzu muss der eigenen Benutzer zur libvirt-Gruppe hinzugefügt und das Vagrantfile um die folgenden Zeilen erweitert werden:

1Vagrant.configure("2") do |config|
2  config.vm.provider :libvirt do |libvirt|
3    libvirt.qemu_use_session = false
4    # if the above doesn't work, try uncommenting the following instead
5    # libvirt.uri = 'qemu:///system'
6  end
7end

Das automatisch vorinstallierte GNOME Boxes verfügt über wenig Funktionen. Um mal einen Blick in die Konsole zu werfen ist es geeignet. Ich werfe jedoch gerne mal einen Blick in die VM-Einstellungen, ohne, dass diese gestartet ist - das ist mit GNOME Boxes nicht möglich, ohne die VM zu starten. Ich setze daher weiterhin auf den angestaubten virt-manager:

1# dnf install virt-manager
2# dnf remove gnome-boxes

Übersetzungen: