Vagrant: Working with Reproducible Development Environments
Vagrant is a command-line utility used to manage the lifecycle of virtual machines.
JetBrains Rider provides full integration with Vagrant allowing you to configure the Vagrant virtual environment, control the behavior of virtual machines, and execute Vagrant commands from within your project.
In the context of working with Vagrant, you will meet the following definitions:
Vagrantfile: the main configuration file that defines the Vagrant environment, stores all the configuration for the virtual boxes and tells Vagrant how to work with virtual machines.
Virtual box: a virtual sandbox that contains a preconfigured virtual machine. Vagrant works with different providers of virtual boxes, such as Oracle's VirtualBox, VMWare or AWS.
Instance: a virtual machine.
Prerequisites
Install and enable Vagrant plugin as described in Installing plugins from JetBrains Marketplace.
Install Vagrant and Oracle's VirtualBox applications.
Make sure virtualization is enabled on your computer.
Vagrantfile
To start working with Vagrant, you need to initialize a Vagrantfile.
Initialize a Vagrantfile
Open the embedded Terminal (Alt+F12) and run the following command:
vagrant initThis will initialize the Vagrantfile and put it into your project root folder by default.
To initialize a Vagrantfile in a specific folder of your choice, go to on the main menu and select the target root folder in the dialog that opens.
To open the newly created Vagrantfile, open the Explorer tool window Alt+1, switch to the File System view and double-click the Vagrantfile.
Virtual box
The newly created Vagrantfile already has a predefined configuration.
The config.vm.box = "..." line specifies the virtual box that will be used in a project.
As an example, we will specify the ubuntu/trusty64 box. It contains a basic Ubuntu virtual machine. You can specify any other virtual box based on your needs. To find a list of available virtual boxes, refer to Discovering Vagrant Boxes.
Specify virtual box
Open the Vagrantfile and change
config.vm.box = "base"line to the following:config.vm.box = "ubuntu/trusty64".Open the Settings/Preferences dialog (Ctrl+Alt+S) and go to . In the window click the
button and specify the following:
Box name: ubuntu/trusty64
Box URL: https://app.vagrantup.com/ubuntu/boxes/trusty64
Once the Vagrantfile initialization is completed, and virtual box is specified, you are ready to deploy and run the virtual machine.
Launch an instance
Do one of the following:
Open the embedded Terminal (Alt+F12) and run the following command:
vagrant up.In the main menu, go to .
SSH into a running machine
When the virtual machine is launched, it runs on a backend. To SSH into a running machine:
Open the embedded Terminal (Alt+F12) and run the following command:
vagrant ssh
Vagrant commands to control an instance
To control an instance, use Vagrant commands. They can be run either from Terminal (Alt+F12) or from the main menu.
In this article, we show only the most important commands to work with the virtual machine. To find a full list of available Vagrant commands, refer to Command-Line-Interface.
Suspend: suspending an instance pauses all the processes and saves the current state of a virtual machine.
Run
vagrant suspendin or select from the main menu.Resume: resuming an instance brings up a previously suspended virtual machine.
Run
vagrant resumein or select from the main menu.Reload: reloading an instance is required when you've made changes to the Vagrantfile and need Vagrant to reload the current virtual environment and its configuration.
Run
vagrant reloadin or select from the main menu.Shut down: shutting down an instance stops the running virtual machine.
Run
vagrant haltin or select from the main menu.Destroy: destroying a virtual machine is important when you need to remove everything related to the previously created environment. All the resources provisioned during the creation of an instance are removed.
Run
vagrant destroyin or select from the main menu.