Vagrant is a command-line tool that provides you with a configurable, reproducible, and portable development environment using VMs. It lets you define and use preconfigured disk images to create new VMs from. Also, you can configure Vagrant to use provisioners such as Shell scripts, Puppet, or Chef to bring your VM into the desired state.
Chef comes with Test Kitchen, which enables you to test your cookbooks on Vagrant without you needing to setup anything manually.
You only need to follow this section, if you want to learn how to use Vagrant and Chef for more advanced cases.
In this recipe, we will see how to use Vagrant to manage VMs using VirtualBox and Chef client as the provisioner.