vagrant Documentation

Vagrant is a tool for building and distributing development environments.

27,200 stars Ruby Ruby 1 file ยท ~1,382 tokens #automation#ruby#vagrant#virtualization
RAW Doc

File: README.md

Vagrant

[!IMPORTANT]
HCP Vagrant is in the process of being deprecated and limited features will be available from the community edition effective March 15, 2027. Click here for more information.

This change is only for HCP Vagrant and does not apply to Vagrant CLI.

Vagrant is a tool for building and distributing development environments.

Development environments managed by Vagrant can run on local virtualized
platforms such as VirtualBox or VMware, in the cloud via AWS or OpenStack,
or in containers such as with Docker or raw LXC.

Vagrant provides the framework and configuration format to create and
manage complete portable development environments. These development
environments can live on your computer or in the cloud, and are portable
between Windows, Mac OS X, and Linux.

Quick Start

Package dependencies: Vagrant requires bsdtar and curl to be available on
your system PATH to run successfully.

For the quick-start, we'll bring up a development machine on
VirtualBox because it is free and works
on all major platforms. Vagrant can, however, work with almost any
system such as OpenStack, VMware, Docker, etc.

First, make sure your development machine has
VirtualBox
installed. After this,
download and install the appropriate Vagrant package for your OS.

To build your first virtual environment:

text
vagrant init hashicorp/bionic64
vagrant up

Note: The above vagrant up command will also trigger Vagrant to download the
bionic64 box via the specified URL. Vagrant only does this if it detects that
the box doesn't already exist on your system.

Getting Started Guide

To learn how to build a fully functional development environment, follow the
getting started guide.

Installing from Source

If you want the bleeding edge version of Vagrant, we try to keep main pretty stable
and you're welcome to give it a shot. Please review the installation page here.

Contributing to Vagrant

Please take time to read the HashiCorp Community Guidelines and the Vagrant Contributing Guide.

Then you're good to go!


File: builtin/README.md

Built-in Plugins

This directory contains all the "built-in" plugins. These are real plugins,
they dogfood the full plugin SDK, do not depend on any internal packages,
and they are executed via subprocess just like a real plugin would be.

The difference is that these plugins are linked directly into the single
command binary. We do this currently for ease of development of the project.
In the future we will split these out into standalone repositories and
binaries.


File: contrib/README.md

Vagrant Contrib

Miscellaneous contributions which assist people in using Vagrant will
make their way into this directory. An up-to-date list of short descriptions
for each item will be kept below.

List of Contrib Items

  • bash - Contains a bash script for improving autocompletion with bash.
  • emacs - Contains a file for enabling Ruby syntax highlighting for Vagrantfiles in emacs.
  • st - Contains a .sublime-settings file for enabling Ruby syntax highlighting
    for Vagrantfiles in Sublime Text.
  • sudoers - Contains the pieces of /etc/sudoers configuration to avoid password entry when
    starting machines.
  • vim - Contains a .vim file for enabling Ruby syntax highlighting
    for Vagrantfiles in vim.
  • zsh - Contains a zsh script for improving autocompletion with zsh.

File: keys/README.md

Insecure Keypairs

These keys are the "insecure" public/private keypair we offer to
base box creators for use in their base boxes so that
vagrant installations can automatically SSH into the boxes.

Vagrant Keypairs

There are currently two "insecure" public/private keypairs for
Vagrant. One keypair was generated using the older RSA algorithm
and the other keypair was generated using the more recent ED25519
algorithm.

The vagrant.pub file includes the public key for both keypairs. It
is important for box creators to include both keypairs as versions of
Vagrant prior to 2.3.8 will only use the RSA private key.

Custom Keys

If you're working with a team or company or with a custom box and
you want more secure SSH, you should create your own keypair
and configure the private key in the Vagrantfile with
config.ssh.private_key_path


File: plugins/README.md

Vagrant Core Plugins

These are plugins that ship with Vagrant. Vagrant core uses its own
plugin system to power a lot of the core pieces that ship with Vagrant.
Each plugin will have its own README which explains its specific role.

Generate proto

text
grpc_tools_ruby_protoc -I . --ruby_out=gen/plugin --grpc_out=gen/plugin ./plugin_server.proto