2022-07-19 08:48:02 -05:00
---
title: Quickstart
redirect_from:
- /home/
- /quickstart/
- /extras/
nav_order: 1
toc: true
---
Vagrant-libvirt is a [Vagrant ](http://www.vagrantup.com ) plugin that adds a
[Libvirt ](http://libvirt.org ) provider to Vagrant, allowing Vagrant to
control and provision machines via Libvirt toolkit.
{: .info }
Actual version is still a development one. Feedback is welcome and
can help a lot :-)
## Prerequisites
Vagrant-libvirt requires the following:
* Vagrant
* Libvirt (and QEMU)
* GCC and Make (if not using vagrant from your distribution)
{: .warn }
Before you start using vagrant-libvirt, please make sure your Libvirt
and QEMU installation is working correctly and you are able to create QEMU or
KVM type virtual machines with `virsh` or `virt-manager` .
2023-08-15 06:09:11 -05:00
See [Requirements ]({{ '/installation#requirements' | relative_url }} ) for guides and details.
2022-07-19 08:48:02 -05:00
## Installation
1. Install Vagrant, Libvirt and QEMU for your distribution
* Ubuntu
```
2022-11-02 08:43:10 -05:00
sudo apt-get purge vagrant-libvirt
sudo apt-mark hold vagrant-libvirt
2022-07-19 08:48:02 -05:00
sudo apt-get update & & \
2022-11-02 08:43:10 -05:00
sudo apt-get install -y qemu libvirt-daemon-system ebtables libguestfs-tools \
vagrant ruby-fog-libvirt
2022-07-19 08:48:02 -05:00
```
* Fedora
```
2022-11-02 08:43:10 -05:00
sudo dnf remove vagrant-libvirt
sudo sed -i \
'/^\(exclude=.*\)/ {/vagrant-libvirt/! s//\1 vagrant-libvirt/;:a;n;ba;q}; $aexclude=vagrant-libvirt' \
/etc/dnf/dnf.conf
2022-11-06 07:38:33 -06:00
vagrant_libvirt_deps=($(sudo dnf repoquery --disableexcludes main --depends vagrant-libvirt 2>/dev/null | cut -d' ' -f1))
dependencies=$(sudo dnf repoquery --qf "%{name}" ${vagrant_libvirt_deps[@]/#/--whatprovides })
sudo dnf install --assumeyes @virtualization ${dependencies}
2022-07-19 08:48:02 -05:00
```
2. Install the latest release of vagrant-libvirt
```
vagrant plugin install vagrant-libvirt
```
2023-08-15 06:09:11 -05:00
If you encounter any errors during this process, check that you have installed all the prerequisites in [Requirements ]({{ '/installation#requirements' | relative_url }} ).
If you still have issues, see [Troubleshooting ]({{ '/troubleshooting#installation-problems' | relative_url }} ).
2022-07-19 08:48:02 -05:00
{: .info }
2023-08-15 06:09:11 -05:00
Installation varies based on your operating system or use of upstream vagrant. See our [guides ]({{ '/installation#guides' | relative_url }} ) for OS-specific instructions.
2022-07-19 08:48:02 -05:00
## Initial Project Creation
After installing the plugin (instructions above), the quickest way to get
started is to add Libvirt box and specify all the details manually within a
`config.vm.provider` block. So first, add Libvirt box using any name you want.
You can find more Libvirt-ready boxes at
[Vagrant Cloud ](https://app.vagrantup.com/boxes/search?provider=libvirt ). For
example:
```shell
vagrant init fedora/36-cloud-base
```
Or make a Vagrantfile that looks like the following, filling in your
information where necessary. For example:
```ruby
Vagrant.configure("2") do |config|
config.vm.define :test_vm do |test_vm|
test_vm.vm.box = "fedora/36-cloud-base"
end
end
```
## Start VM
In prepared project directory, run following command:
```shell
$ vagrant up --provider=libvirt
```
Vagrant needs to know that we want to use Libvirt and not default VirtualBox.
That's why there is `--provider=libvirt` option specified. Other way to tell
Vagrant to use Libvirt provider is to setup environment variable
```shell
export VAGRANT_DEFAULT_PROVIDER=libvirt
```