Vagrant mit KVM unter Arch Linux

Bei Vagrant wird standardmäßig VirtualBox für die Bereitstellung der VMs verwendet. Unter Linux ist es jedoch auch möglich KVM per libvirt zu verwenden.

Zunächst muss Vagrant installiert werden.

$ yaourt -S vagrant

Anschließend wird das für den libvirt Dienst benötigte Paket installiert. Optional kann zum Debuggen von Problemen zusätzlich noch das Tool virt-manager installiert werden.

$ yaourt -S libvirt virt-manager

Kommt KVM/libvirt zum Einsatz wird NFS zur Synchronisation der Dateien zwischen Host und VM verwendet. Daher ist es notwendig die Tools zur Konfiguration eines NFS-Server zu installieren.

$ yaourt -S nfs-utils

Anschließend müssen die benötigten Dienste gestartet werden.

$ sudo systemctl start libvirtd
$ sudo systemctl start rpcbind
$ sudo systemctl start nfs-server

Sollen die Dienste bei jedem Boot automatisch starten, ist es notwendig sie zu aktivieren.

$ sudo systemctl enable libvirtd
$ sudo systemctl enable rpcbind
$ sudo systemctl enable nfs-server

Momentan scheinen Problem mit dem libvirt Plugin unter Arch Linux und Vagrant 1.7.2 aufzutreten. Wird das Plugin einfach Installiert, kommt es entweder bereits beim Erstellen des Plugins oder beim Anlegen der VM zu Problemen. Im Arch Linux Wiki ist ein Workaround beschrieben, welcher im Folgenden in Auszügen verwendet wird.

Ist noch eine ältere oder nicht funktionierende Version des Plugins installiert, muss diese zunächst deinstalliert werden.

$ vagrant plugin uninstall vagrant-libvirt

Vor der Installation des Plugins müssen ein paar Bibliotheken von Vagrant deaktiviert werden.

$ sudo mv /opt/vagrant/embedded/lib/libcurl.so{,.backup}
$ sudo mv /opt/vagrant/embedded/lib/libcurl.so.4{,.backup}
$ sudo mv /opt/vagrant/embedded/lib/libcurl.so.4.3.0{,.backup}
$ sudo mv /opt/vagrant/embedded/lib/pkgconfig/libcurl.pc{,.backup}

Anschließend sollte sich das Plugin mit folgendem Befehl installieren lassen.

$ CONFIGURE_ARGS="with-libvirt-include=/usr/include/libvirt with-libvirt-lib=/usr/lib" vagrant plugin install vagrant-libvirt

Damit Vagrant wieder ohne Probleme läuft, müssen die original Dateien wieder hergestellt werden.

$ sudo mv /opt/vagrant/embedded/lib/libcurl.so{.backup,}
$ sudo mv /opt/vagrant/embedded/lib/libcurl.so.4{.backup,}
$ sudo mv /opt/vagrant/embedded/lib/libcurl.so.4.3.0{.backup,}
$ sudo mv /opt/vagrant/embedded/lib/pkgconfig/libcurl.pc{.backup,}

War die Installation erfolgreich, sollte sich die VM mit folgendem Befehl starten lassen.

$ vagrant up

Sind weitere Provider installiert, muss eventuell libvirt als Provider angegeben werden.

$ vagrant up --provider libvirt

Verwandte Artikel