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
Links
- Webseite: Arch Linux (englisch)
- Webseite: Vagrant (englisch)
- Webseite: Vagrant libvirt (englisch)
- Webseite: Arch Linux Wiki zu Vagrant (englisch)
- Webseite: VirtualBox (englisch)