Vagrant is a software engine which takes a configuration file, and builds a VM out of it. You can have a VM or a combination of VMs (multi-machine) with the required OS, IDE, configuration, tools, and servers all installed on it. Since it's a VM, it is portable as a USB key. Use it and recreate it just by copy-paste, and identical copies will be ready in seconds or minutes.
Vagrant primarily supports VirtualBox and VMware, as well as AWS. Vagrant has unified the creation and recreation of such development environments, and has provided an online public repository of such machines that you can build and share, or use an existing one.
The following is an excerpt from the Vagrant website (https://www.vagrantup.com/docs/why-vagrant/):
To achieve its magic, Vagrant stands on the shoulders of giants. Machines are provisioned on top of VirtualBox, VMware, AWS, or any other provider. Then, industry-standard provisioning tools such as shell scripts, Chef, or Puppet, can be used to automatically install and configure software on the machine.