Using Vagrant to set up a VM with KVM/qemu without VirtualBox
Solution 1
Start vagrant box with command
vagrant up --provider=kvm
Although it has been said in https://seven.centos.org/2017/08/updated-centos-vagrant-images-available-v1707-01/ that
The vagrant-libvirt plugin is only compatible with Vagrant 1.5 to 1.8
Solution 2
You can use either the command line option --provider=kvm
or you can set the VAGRANT_DEFAULT_PROVIDER
environment variable:
export VAGRANT_DEFAULT_PROVIDER=kvm # <-- may be in ~/.profile, /etc/profile, or elsewhere
vagrant up
Solution 3
vagrant-libvirt(0.0.40) is compatible with Vagrant 2.0.2 if you are running Ruby 2.3, at least on Linux Mint 18.3 (Ubuntu 16.04). I used vagrant from the Debian download on the vagrantUp website and installed the plugin using it without any problem.
rahuL
Updated on March 31, 2020Comments
-
rahuL about 4 years
I'm getting started Vagrant and want to use it with KVM/qemu (and the Virtual Machine Manager GUI), instead of installing VirtualBox. So I first installed Vagrant:
$ vagrant --version Vagrant 1.9.1 $ vagrant box list There are no installed boxes! Use `vagrant box add` to add some
As per these posts, I require
vagrant-libvirt
for it to work with KVM, so I installed that next:$ vagrant plugin list vagrant-libvirt (0.0.37) vagrant-share (1.1.6, system)
Next, I to add a CentOS(7) box using
vagrant box add "centos/7"
and selectedlibvirt
, when prompted. After which, I ranvagrant init
and didn't encounter any errors:$ 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.
However,
vagrant up
seems to be erroring out, like so:$ 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.
-
Here's the provider section in the
Vagrantfile
config.vm.provider :libvirt do |domain| domain.driver = "qemu" domain.memory = 512 domain.cpus = 1 end
-
I tried modifying it to:
config.vm.provider :libvirt do |domain| domain.driver = "kvm" domain.host = 'localhost' domain.uri = 'qemu:///system' domain.memory = 512 domain.cpus = 1 end
I also tried
vagrant up --provider=kvm
,vagrant up --provider=qemu
, andvagrant up --provider=libvirt
too, to no avail.
Is there any step that I've missed? Or another package/dependency that needs to be installed?
Edit: After the adding
centos/7
using vagrant, it shows up when runningvagrant box list
.$ vagrant box list centos/7 (libvirt, 1611.01)
-