32 votes

Utiliser Vagrant pour configurer une VM avec KVM/qemu sans VirtualBox

Je débute avec Vagrant et je veux l'utiliser avec KVM/qemu (et l'interface graphique Virtual Machine Manager), au lieu d'installer VirtualBox. J'ai donc d'abord installé Vagrant :

$ vagrant --version
Vagrant 1.9.1

$ vagrant box list
There are no installed boxes! Use `vagrant box add` to add some

Como par ces postes j'exige vagrant-libvirt pour qu'il fonctionne avec KVM, donc j'ai installé ça ensuite :

$ vagrant plugin list
vagrant-libvirt (0.0.37)
vagrant-share (1.1.6, system)

Ensuite, j'ajoute un boîtier CentOS(7) en utilisant vagrant box add "centos/7" et sélectionné libvirt lorsque vous y êtes invité. Après quoi, j'ai exécuté vagrant init et n'a pas rencontré d'erreur :

$ vagrant init centos/7
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.

Cependant, vagrant up semble faire une erreur, comme ceci :

$ vagrant up
No usable default provider could be found for your system.

Vagrant relies on interactions with 3rd party systems, known as
"providers", to provide Vagrant with resources to run development
environments. Examples are VirtualBox, VMware, Hyper-V.

The easiest solution to this message is to install VirtualBox, which
is available for free on all major platforms.

If you believe you already have a provider available, make sure it
is properly installed and configured. You can see more details about
why a particular provider isn't working by forcing usage with
`vagrant up --provider=PROVIDER`, which should give you a more specific
error message for that particular provider.
  • Voici le fournisseur dans la section Vagrantfile

    config.vm.provider :libvirt do |domain|
        domain.driver = "qemu"
        domain.memory = 512
        domain.cpus = 1
    end
  • J'ai essayé de le modifier pour :

    config.vm.provider :libvirt do |domain|
        domain.driver = "kvm"
        domain.host = 'localhost'
        domain.uri = 'qemu:///system'
        domain.memory = 512
        domain.cpus = 1
    end
  • J'ai aussi essayé vagrant up --provider=kvm , vagrant up --provider=qemu et vagrant up --provider=libvirt aussi, en vain.

Y a-t-il une étape que j'ai manquée ? Ou un autre paquetage/dépendance qui doit être installé ?

Editar: Après l'ajout centos/7 en utilisant vagrant, il apparaît quand on exécute vagrant box list .

$ vagrant box list
centos/7 (libvirt, 1611.01)

11voto

Jmt Points 51

Démarrez la boîte vagrant avec la commande

vagrant up --provider=kvm

Bien qu'il ait été dit dans https://seven.centos.org/2017/08/updated-centos-vagrant-images-available-v1707-01/ que

Le plugin vagrant-libvirt est uniquement compatible avec Vagrant 1.5 à 1.8.

10voto

ReWrite Points 170

Vous pouvez utiliser l'option de ligne de commande --provider=kvm ou vous pouvez définir le VAGRANT_DEFAULT_PROVIDER variable d'environnement :

export VAGRANT_DEFAULT_PROVIDER=kvm  # <-- may be in ~/.profile, /etc/profile, or elsewhere

vagrant up

1voto

DaveC49 Points 19

Vagrant-libvirt(0.0.40) est compatible avec Vagrant 2.0.2 si vous utilisez Ruby 2.3, du moins sur Linux Mint 18.3 (Ubuntu 16.04). J'ai utilisé vagrant à partir du téléchargement Debian sur le site vagrantUp et j'ai installé le plugin en l'utilisant sans aucun problème.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X