How to Install Vagrant on Ubuntu 20.04

By 

Published on

3 min read

How to install Vagrant on Ubuntu 20.04

Vagrant is a command-line tool for building and managing virtual machines.

By default, Vagrant can provision machines on top of VirtualBox, Hyper-V, and Docker. Other providers such as Libvirt (KVM), VMware and AWS can be installed via the Vagrant plugin system.

Vagrant is typically used by developers to set up a development environment that works across multiple operating systems.

This article describes how to install Vagrant on an Ubuntu 20.04 machine. We’ll use VirtualBox, which is the default provider for Vagrant.

Installing Vagrant on Ubuntu

We will provision the virtual machines on top of VirtualBox.

If VirtualBox is not installed on your system you can install it by running:

Terminal
sudo apt update
sudo apt install virtualbox

The Vagrant package, which is available in Ubuntu’s repositories, is not regularly updated. We’ll download and install the latest version of Vagrant from the official Vagrant site.

At the time of writing this article, the latest stable version of Vagrant is version 2.2.9. Visit the Vagrant downloads page to see if there is a new version of Vagrant available.

Download the Vagrant package with wget :

Terminal
curl -O https://releases.hashicorp.com/vagrant/2.2.9/vagrant_2.2.9_x86_64.deb

Once the file is downloaded, install it by typing:

Terminal
sudo apt install ./vagrant_2.2.9_x86_64.deb

To verify that the installation was successful, run the following command that will print the Vagrant version:

Terminal
vagrant --version

The output should look something like this:

output
Vagrant 2.2.9

Getting Started with Vagrant

Creating a Vagrant project is as simple as setting up the project root directory and defining a Vagrantfile.

Run the following commands to create the directory and cd into it with:

Terminal
mkdir ~/my-vagrant-project
cd ~/my-vagrant-project

Next, initialize a new Vagrantfile using the vagrant init command, followed by the box you want to use.

Boxes are the package format for the Vagrant environments and are provider-specific. You can find a list of publicly available Vagrant Boxes on the Vagrant box catalog page.

In this example, we will use the centos/8 box:

Terminal
vagrant init centos/8
output
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.

Vagrantfile is a Ruby file that describes how to configure and provision the virtual machine. You can open the Vagrantfile , read the comments, and make adjustments according to your needs.

Run the vagrant up command to create and configure the virtual machine as specified in the Vagrantfile:

Terminal
vagrant up
output
==> default: Configuring and enabling network interfaces...
    default: SSH address: 192.168.121.74:22
    default: SSH username: vagrant
    default: SSH auth method: private key
==> default: Rsyncing folder: /home/linuxize/Vagrant/my-vagrant-project/ => /vagrant

Vagrant mounts the project directory at /vagrant in the virtual machine. This allows you to work on your project’s files on your host machine.

To ssh into the virtual machine, run:

Terminal
vagrant ssh

You can stop the virtual machine with the following command:

Terminal
vagrant halt

To destroy all resources created during the creation of the machine, enter:

Terminal
vagrant destroy

Conclusion

We’ve shown you how to install Vagrant on Ubuntu 20.04 and create a basic Vagrant project.

To find more information about Vagrant visit, the official Vagrant documentation page.

If you have any questions, please leave a comment below.

Linuxize Weekly Newsletter

A quick weekly roundup of new tutorials, news, and tips.

About the authors

Dejan Panovski

Dejan Panovski

Dejan Panovski is the founder of Linuxize, an RHCSA-certified Linux system administrator and DevOps engineer based in Skopje, Macedonia. Author of 800+ Linux tutorials with 20+ years of experience turning complex Linux tasks into clear, reliable guides.

View author page