Vagrant is an application that manages virtualized environments (boxes) allowing to control the creation and provisionning of virtual machines, which may share some resources (folders) with the host.
Vagrant supports different virtualization engines (providers), among which VirtualBox is historically the most popular.
Installation with libvirt
apt install vagrant-libvirt libvirt-daemon-system
At this point you may have to read the libvirt page to assure your user has the right permissions, or for some troubleshooting.
Installation tested in Debian GNU/Linux jessie, stretch and buster.
Debian Vagrant base box
There is an ongoing effort to provide official Teams/Cloud/VagrantBaseBoxes, hosted in Atlas, Vagrant's cloud product. Although not yet official, you can already use these boxes
vagrant init debian/jessie64 vagrant up vagrant ssh
Creating Debian vagrant boxes
You also may wish to create your own Debian boxes, instead of relying on ones provided by a third party.
Several tools may be used to do so :
On vagrant up various errors can happen:
Errors on NFS mount on Debian GNU/Linux jessie and stretch boxes
During the vagrant up process you can get this error on Debian Debian GNU/Linux jessie as well as in stretch:
The following SSH command responded with a non-zero exit status. Vagrant assumes that this means the command failed! mount -o vers=4 192.168.121.1:/home/jhon/projects/foo /vagrant result=$? if test $result -eq 0; then if test -x /sbin/initctl && command -v /sbin/init && /sbin/init 2>/dev/null --version | grep upstart; then /sbin/initctl emit --no-wait vagrant-mounted MOUNTPOINT=/vagrant fi else exit $result fi Stdout from the command: Stderr from the command: mount.nfs: access denied by server while mounting 192.168.121.1:/home/jhon/projects/foo
First of all ensure that your NFS daemon is running:
sudo systemctl status nfs-common sudo systemctl status nfs-kernel-server
Then copy from the above error the mount command and try running it on yourself, but downgrading the NFS version (the vers):
vagrant ssh sudo mount -o vers=3 192.168.121.1:/home/jhon/projects/foo /vagrant
If it works manually, than you can fix it adding this line into your Vagrantfile:
config.vm.synced_folder ".", "/vagrant", nfs_version: "3"