How to install Vagrant on Ubuntu 18.04

Vagrant is an open source command line tool for building and managing virtual machine environments. By default Vagrant can provision machines on top of VirtualBox, Hyper-V and Docker but many other providers such as Libvirt (KVM), VMware and AWS can be installed via the Vagrant plugin system.

Vagrant is mostly used by developers to easily set up a development environment, that matches the production environment.

In this tutorial we’ll show you how to install Vagrant on a Ubuntu 18.04 machine. We’ll be using the VirtualBox provider, which is the default provider for Vagrant.

Although this tutorial is written for Ubuntu 18.04 Bionic Beaver the same steps can be used for Ubuntu 16.04 Xenial Xerus.

Before continuing with this tutorial, make sure you are logged in as a user with sudo privileges.
Installing Vagrant

To install Vagrant on your Ubuntu system, follow these steps:

Installing VirtualBox.

As mentioned in the introduction, we will provision our machines on top of VirtualBox, so our first step is to install the VirtualBox package which is available in the Ubuntu’s repositories:

sudo apt install virtualbox

If you want to install the latest VirtualBox version from the Oracle repositories check this tutorial.

Installing Vagrant.

Next, install the Vagrant package from the Ubuntu’s repositories by typing:

sudo apt install vagrant

The Vagrant package which is available in the Ubuntu’s repositories may not always be the latest version. If you want to install the latest version of VirtualBox then download the Debian package from the Vagrant Download page.

Verify Vagrant installation

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

vagrant –version

Vagrant 2.0.2

Getting Started with Vagrant

Now that Vagrant is installed on your Ubuntu system we will show you how to create a development environment which is the most common use case.

The first step is to create a directory which will be the project root directory and hold the Vagrantfile file. Vagrantfile is a Ruby file that describes how to configure and provision the virtual machine.

Create the project directory and switch to it with:

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

The next step is to initialize a new Vagrantfile using the vagrant init command and specify the box we wish 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/7 box. Run the following command to initialize a new Vagrantfile:

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
`` for more information on using Vagrant.

You can open the Vagrantfile, read the comments and make adjustment according to your needs.

Now we can run the vagrant up command which will create and configure the virtual machine according to the Vagrantfile.

vagrant up

==> default: Configuring and enabling network interfaces…
default: SSH address:
default: SSH username: vagrant
default: SSH auth method: private key
==> default: Rsyncing folder: /home/linuxize/Vagrant/my-first-vagrant-project/ => /vagrant

As you can see from the output above Vagrant also mounts the project directory at /vagrant in the virtual machine which allows you to work on your project’s files on your host machine.

To ssh into the virtual machine simply run:

vagrant ssh

Leave a Reply

Your email address will not be published. Required fields are marked *