How to Install Vagrant on Ubuntu 20.04
What is Vagrant ?
Vagrant is a command-line tool for building and managing virtual machines.
Vagrant is typically used by developers to set up a development environment that works across multiple operating systems.
Vagrant can supply machines on top of Virtual Box, Hyper-V, and Docker. Other providers such as Libvirt (KVM), VMware and AWS can be installed via the Vagrant plugin system.
Installing Vagrant on Ubuntu
We will provision the virtual machines on top of virtual box
You have to install VirtualBox in your system. If you doesn't have installed it follow these commands to install it.
$ 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:
$ 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:
$ 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:
$ vagrant --version
The output should look something like this:
$ Vagrant 2.2.9
Getting Started with Vagrant
Creating a Vagrant project is 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:
$ 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:
$ 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 adjustment according to your needs.
Run the vagrant up command to create and configure the virtual machine as specified in the Vagrantfile:
$ vagrant up
default: Configuring and enabling network interfaces... default: SSH address: 220.127.116.11:80 default: SSH username: vagrant default: SSH auth method: private key default: Rsyncing folder: /home/doceeo/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:
$ vagrant ssh
You can stop the virtual machine with the following command:
$ vagrant halt
To destroy all resources created during the creation of the machine, enter:
$ vagrant destroy