Simple Virtual Machines
Vagrant is a virtual machine used to build complete development environments. You can think of Vagrant as a developer’s virtual sandbox. Easy to configure, reproducible, and portable, the work environments provided by Vagrant are built on industry-standard technology and managed by a single consistent workflow to maximize your team’s productivity and flexibility.
Vagrant is a software that creates and configures virtual development environments. It is a “wrapper” that encompasses and incorporates virtualization tools such as VirtualBox, KVM, and VMware, as well as configuration management tools such as Ansible, Chef, Salt, and Puppet.
Vagrant is useful for web developers, operations engineers, web designers, and their employers and clients. There is a huge number of ways to build web development environments, and whichever you choose, Vagrant can help at every step.
- For Developers: Vagrant lets developers user the tools and operating system they prefer no matter the deployment configuration. It allows new team members to join an identical environment as their colleagues who have already spent a lot of time on the project, and it prevents operating system discrepancies (those pesky “Well, it works on my computer…” bugs) by ensuring the same dependencies and configurations.
- For Operations Engineers: Vagrant eases the difficulty of developing and testing infrastructure management scripts by providing a disposable environment and consistent workflow. With Vagrant, you get an environment for quickly testing shell scripts, Chef cookbooks, Puppet modules, and more. These same scripts, once tested, can be utilized to configure machines in production environments both on and off premise.
- For Designers: Vagrant allows designers to focus on doing what they do best: design. Vagrant automatically sets up everything required for a web app; once Vagrant is configured by a developer, there is no need for a designer to worry about getting the app running again or fixing environments.
And Vagrant ensures that the web application environment used by designers is the same as the one used by developers without any need to track changes in the dev environment.