HashiCorp Vagrant - Development Environments Made Easy - BRS MEDIA TECHNOLOGIES
Vagrant Logo

HashiCorp Vagrant – Development Environments Made Easy

Introduction to Vagrant

Vagrant is a tool for building and managing virtual machine environments in a single workflow. With an easy-to-use workflow and focus on automation, Vagrant lowers development environment setup time, increases production parity, and makes the “works on my machine” excuse a relic of the past.

Why Vagrant?

Vagrant provides easy to configure, reproducible, and portable work environments built on top of industry-standard technology and controlled by a single consistent workflow to help maximize the productivity and flexibility of you and your team.

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 automatically install and configure software on the virtual machine.

  • For Developers: If you are a developer, Vagrant will isolate dependencies and their configuration within a single disposable, consistent environment, without sacrificing any of the tools you are used to working with (editors, browsers, debuggers, etc.). Once you or someone else creates a single Vagrantfile, you just need to vagrant up and everything is installed and configured for you to work. Other members of your team create their development environments from the same configuration, so whether you are working on Linux, Mac OS X, or Windows, all your team members are running code in the same environment, against the same dependencies, all configured the same way. Say goodbye to “works on my machine” bugs.
  • For Operators: If you are an operations engineer or DevOps engineer, Vagrant gives you a disposable environment and consistent workflow for developing and testing infrastructure management scripts. You can quickly test things like shell scripts, Chef cookbooks, Puppet modules, and more using local virtualization such as VirtualBox or VMware. Then, with the same configuration, you can test these scripts on remote clouds such as AWS or RackSpace with the same workflow. Ditch your custom scripts to recycle EC2 instances, stop juggling SSH prompts to various machines, and start using Vagrant to bring sanity to your life.
  • For Designers: If you are a designer, Vagrant will automatically set everything up that is required for that web app in order for you to focus on doing what you do best: design. Once a developer configures Vagrant, you do not need to worry about how to get that app running ever again. No more bothering other developers to help you fix your environment so you can test designs. Just check out the code, vagrant up, and start designing.
  • For Everyone: Vagrant is designed for everyone as the easiest and fastest way to create a virtualized environment!

Powerful features

Vagrant is an open-source software product for building and maintaining portable virtual software development environments; e.g., for VirtualBox, KVM, Hyper-V, Docker containers, VMware, and AWS. It tries to simplify the software configuration management of virtualization in order to increase development productivity. Vagrant is written in the Ruby language, but its ecosystem supports development in a few other languages.

Vagrant was first started as a personal side-project by Mitchell Hashimoto in January 2010. The first stable version, Vagrant 1.0, was released in March 2012, exactly two years after the original version was released. In November 2012, Mitchell formed an organization called HashiCorp to support the full-time development of Vagrant; Vagrant remained permissively licensed free software. HashiCorp now works on creating commercial editions and provides professional support and training for Vagrant.

Vagrant uses “Provisioners” and “Providers” as building blocks to manage the development environments. Provisioners are tools that allow users to customize the configuration of virtual environments. Puppet and Chef are the two most widely used provisioners in the Vagrant ecosystem (Ansible has been available since at least 2014). Providers are the services that Vagrant uses to set up and create virtual environments. Support for VirtualBox, Hyper-V, and Docker virtualization ships with Vagrant, while VMware and AWS are supported via plugins. Some special features are:

  • Simple and Powerful: HashiCorp Vagrant provides the same, easy workflow regardless of your role as a developer, operator, or designer. It leverages a declarative configuration file which describes all your software requirements, packages, operating system configuration, users, and more.
  • Production Parity: The cost of fixing a bug exponentially increases the closer it gets to production. Vagrant aims to mirror production environments by providing the same operating system, packages, users, and configurations, all while giving users the flexibility to use their favorite editor, IDE, and browser. Vagrant also integrates with your existing configuration management tooling like Ansible, Chef, Docker, Puppet or Salt, so you can use the same scripts to configure Vagrant as production.
  • Works where you work: Vagrant works on Mac, Linux, Windows, and more. Remote development environments force users to give up their favorite editors and programs. Vagrant works on your local system with the tools you’re already familiar with. Easily code in your favorite text editor, edit images in your favorite manipulation program, and debug using your favorite tools, all from the comfort of your local laptop.

Vagrant vs. Terraform

Vagrant and Terraform are both projects from HashiCorp. Vagrant is a tool focused for managing development environments and Terraform is a tool for building infrastructure.

  1. Terraform can describe complex sets of infrastructure that exist locally or remotely. It is focused on building and changing that infrastructure over time. The minimal aspects of virtual machine lifecycle can be reproduced in Terraform, sometimes leading to confusion with Vagrant.
  2. Vagrant provides a number of higher level features that Terraform doesn’t. Synced folders, automatic networking, HTTP tunneling, and more are features provided by Vagrant to ease development environment usage. Because Terraform is focused on infrastructure management and not development environments, these features are out of scope for that project.
  3. The primary usage of Terraform is for managing remote resources in cloud providers such as AWS. Terraform is designed to be able to manage extremely large infrastructures that span multiple cloud providers. Vagrant is designed primarily for local development environments that use only a handful of virtual machines at most.
  4. Vagrant is for development environments. Terraform is for more general infrastructure management.

Downloads

Download the official release of Vagrant.

If you need professional assistance configuring your deployment, you can use our commercial support to help get you up and running.



Key Terms:

  • HashiCorp Vagrant
  • ,
  • Infrastructure Provisioner
  • ,
  • Open Source Software
  • ,
  • Vagrant
  • ,
  • Virtual machines

More Angel Softwares

proxmox virtualization software

Proxmox Virtual Environment an open-source virtualization platform

Proxmox VE(Virtual Environment) is an open-source virtual platform based on Debian. It allows you to easily create virtual machines and […]

PuTTY

PuTTY utility to connect Unix and Linux

Contents1 PuTTY is a utility to connect Unix and Linux from Windows1.0.1 Downloads1.1 PuTTYgen1.1.1 How to use PuTTYgen?1.1.2 Types of […]

Turnkey Open Source Hypervisor

XCP-ng – Next Generation Turnkey Open Source Hypervisor

XCP-ng is a Linux distribution of the Xen Project, with pre-configured Xen Hypervisor and the Xen API project (XAPI) working […]

AlmaLinux OS

Alma Linux – Free Linux OS for the community, by the community

An Open Source, community owned and governed, forever-free enterprise Linux distribution, focused on long-term stability, providing a robust production-grade platform. […]

TrueNAS Scale Logo

Open Storage at Scale-TrueNAS Scale

TrueNAS SCALE is the latest member of the TrueNAS family and provides Open Source HyperConverged Infrastructure (HCI) including Linux containers and […]

Firewall

Drawio Easy Visual Diagrams Making Tools

Draw.iO Diagrams is a cross-platform diagramming application you can use to create flowcharts, workflows, org charts, Venn diagrams, wireframes, network […]