vagrant/website/source/intro/vs/cli-tools.md

39 lines
1.9 KiB
Markdown

---
layout: "intro"
page_title: "Vagrant vs. CLI Tools"
sidebar_current: "vs-cli-tools"
description: |-
Virtualization software like VirtualBox and VMware come with command line
utilities for managing the lifecycle of machines on their platform. Vagrant
actually uses many of these utilities internally. The difference between these
CLI tools and Vagrant is that Vagrant provides a declarative, reproducible,
idempotent workflow.
---
# Vagrant vs. CLI Tools
Virtualization software like VirtualBox and VMware come with command line
utilities for managing the lifecycle of machines on their platform. Many
people make use of these utilities to write their own automation. Vagrant
actually uses many of these utilities internally.
The difference between these CLI tools and Vagrant is that Vagrant builds
on top of these utilities in a number of ways while still providing a
consistent workflow. Vagrant supports multiple synced folder types, multiple
provisioners to setup the machine, automatic SSH setup, creating HTTP tunnels
into your development environment, and more. All of these can be configured
using a single simple configuration file.
Vagrant still has a number of improvements over manual scripting even if you
ignore all the higher-level features Vagrant provides. The command-line
utilities provided by virtualization software often change each version
or have subtle bugs with workarounds. Vagrant automatically detects the
version, uses the correct flags, and can work around known issues. So if
you're using one version of VirtualBox and a co-worker is using a different
version, Vagrant will still work consistently.
For highly-specific workflows that don't change often, it can still be
beneficial to maintain custom scripts. Vagrant is targeted at building
development environments but some advanced users still use the CLI tools
underneath to do other manual things.