---
layout: docs
page_title: Environmental Variables
description: |-
  Vagrant has a set of environmental variables that can be used to
  configure and control it in a global way. This page lists those environmental
  variables.
---

# Environmental Variables

Vagrant has a set of environmental variables that can be used to
configure and control it in a global way. This page lists those environmental
variables.

## `CFLAGS`

If set the contents of this environment variable will be appended to the
value generated by the Vagrant launcher.

## `CPPFLAGS`

If set the contents of this environment variable will be appended to the
value generated by the Vagrant launcher.

## `CURL_CA_BUNDLE`

If set this environment variable will be passed through to the Vagrant
process. By default Vagrant will use the CA certificate included with
the Vagrant installation.

## `LDFLAGS`

If set the contents of this environment variable will be appended to the
value generated by the Vagrant launcher.

## `SSL_CERT_FILE`

If set this environment variable will be passed through to the Vagrant
process. By default Vagrant will use the CA certificate included with
the Vagrant installation.

## `VAGRANT_ALIAS_FILE`

`VAGRANT_ALIAS_FILE` can be set to change the file where Vagrant aliases are
defined. By default, this is set to `~/.vagrant.d/aliases`.

## `VAGRANT_ALLOW_PLUGIN_SOURCE_ERRORS`

If this is set to any value, then Vagrant will not error when a configured
plugin source is unavailable. When installing a Vagrant plugin Vagrant
will error and halt if a plugin source is inaccessible. In some cases it
may be desirable to ignore inaccessible sources and continue with the
plugin installation. Enabling this value will cause Vagrant to simply log
the plugin source error and continue.

## `VAGRANT_BOX_UPDATE_CHECK_DISABLE`

By default, Vagrant will query the metadata API server to see if a newer
box version is available for download. This optional can be disabled on a
per-Vagrantfile basis with `config.vm.box_check_update`, but it can also be
disabled globally setting `VAGRANT_BOX_UPDATE_CHECK_DISABLE` to any non-empty
value.

This option will not affect global box functions like `vagrant box update`.

## `VAGRANT_CHECKPOINT_DISABLE`

Vagrant does occasional network calls to check whether the version of Vagrant
that is running locally is up to date. We understand that software making remote
calls over the internet for any reason can be undesirable. To suppress these
calls, set the environment variable `VAGRANT_CHECKPOINT_DISABLE` to any
non-empty value.

If you use other HashiCorp tools like Packer and would prefer to configure this
setting only once, you can set `CHECKPOINT_DISABLE` instead.

## `VAGRANT_CWD`

`VAGRANT_CWD` can be set to change the working directory of Vagrant. By
default, Vagrant uses the current directory you are in. The working directory
is important because it is where Vagrant looks for the Vagrantfile. It
also defines how relative paths in the Vagrantfile are expanded, since they're
expanded relative to where the Vagrantfile is found.

This environmental variable is most commonly set when running Vagrant from
a scripting environment in order to set the directory that Vagrant sees.

## `VAGRANT_DEBUG_LAUNCHER`

For performance reasons, especially for Windows users, Vagrant uses a static
binary to launch the actual Vagrant process. If you have _very_ early issues
when launching Vagrant from the official installer, you can specify the
`VAGRANT_DEBUG_LAUNCHER` environment variable to output debugging information
about the launch process.

## `VAGRANT_DEFAULT_PROVIDER`

This configures the default provider Vagrant will use.

This normally does not need to be set since Vagrant is fairly intelligent
about how to detect the default provider. By setting this, you will force
Vagrant to use this provider for any _new_ Vagrant environments. Existing
Vagrant environments will continue to use the provider they came `up` with.
Once you `vagrant destroy` existing environments, this will take effect.

## `VAGRANT_DEFAULT_TEMPLATE`

This configures the template used by `vagrant init` when the `--template` option
is not provided.

## `VAGRANT_DETECTED_ARCH`

This environment variable may be set by the Vagrant launcher to help determine
the current runtime architecture in use. In general Vagrant will set this value
when running on a Windows host using a cygwin or msys based shell. The value
the Vagrant launcher may set in this environment variable will not always match
the actual architecture of the platform itself. Instead it signifies the detected
architecture of the environment it is running within. If this value is set, the
Vagrant launcher will not modify it.

## `VAGRANT_DETECTED_OS`

This environment variable may be set by the Vagrant launcher to help determine
the current runtime platform. In general Vagrant will set this value when running
on a Windows host using a cygwin or msys based shell. If this value is set, the
Vagrant launcher will not modify it.

## `VAGRANT_DISABLE_RESOLV_REPLACE`

Vagrant can optionally use the Ruby Resolv library in place of the libc resolver.
This can be disabled setting this environment variable.

## `VAGRANT_DISABLE_VBOXSYMLINKCREATE`

If set, this will completely disable the ability to create symlinks with all VirtualBox
shared folders. If this environment variable is not set, the VirtualBox synced
folders option `SharedFoldersEnableSymlinksCreate` will be enabled by default.
This option can be overridden on a per-folder basis within your Vagrantfile
config by setting the `SharedFoldersEnableSymlinksCreate` option to true if you
do not wish to completely disable this feature for all VirtualBox guests.

More information on the option can be read in the [VirtualBox synced folders docs page.](/vagrant/docs/synced-folders/virtualbox#sharedfoldersenablesymlinkscreate)

## `VAGRANT_DISABLE_SMBMFSYMLINKS`

If set, this will disable the `mfsymlinks` option for mounting SMB filesystems. If not set, then the `mfsymlinks` option will be enabled by default. This option can be overriden on a pre-folder basis with your Vagrantfile by setting `mount_options: ['mfsymlinks']`.

## `VAGRANT_DOTFILE_PATH`

`VAGRANT_DOTFILE_PATH` can be set to change the directory where Vagrant stores
VM-specific state, such as the VirtualBox VM UUID. By default, this is set to
`.vagrant`. If you keep your Vagrantfile in a Dropbox folder in order to share
the folder between your desktop and laptop (for example), Vagrant will overwrite
the files in this directory with the details of the VM on the most recently-used
host. To avoid this, you could set `VAGRANT_DOTFILE_PATH` to `.vagrant-laptop`
and `.vagrant-desktop` on the respective machines. (Remember to update your
`.gitignore`!)

## `VAGRANT_ENABLE_RESOLV_REPLACE`

Use the Ruby Resolv library in place of the libc resolver.

## `VAGRANT_FORCE_COLOR`

If this is set to any value, then Vagrant will force colored output, even
if it detected that there is no TTY or the current environment does not
support it.

The equivalent behavior can be achieved by using the `--color` flag on a
command-by-command basis. This environmental variable is useful for setting
this flag globally.

## `VAGRANT_HOME`

`VAGRANT_HOME` can be set to change the directory where Vagrant stores
global state. By default, this is set to `~/.vagrant.d`. The Vagrant home
directory is where things such as boxes are stored, so it can actually become
quite large on disk.

## `VAGRANT_IGNORE_WINRM_PLUGIN`

Vagrant will not display warning when `vagrant-winrm` plugin is installed.

## `VAGRANT_INSTALL_LOCAL_PLUGINS`

If this is set to any value, Vagrant will not prompt for confirmation
prior to installing local plugins which have been defined within the
local Vagrantfile.

## `VAGRANT_IS_HYPERV_ADMIN`

Disable Vagrant's check for Hyper-V admin privileges and allow Vagrant to assume
the current user has full access to Hyper-V. This is useful if the internal
privilege check incorrectly determines the current user does not have access
to Hyper-V.

## `VAGRANT_LOCAL_PLUGINS_LOAD`

If this is set Vagrant will not stub the Vagrantfile when running
`vagrant plugin` commands. When this environment variable is set the
`--local` flag will not be required by `vagrant plugin` commands to
enable local project plugins.

## `VAGRANT_LOG`

`VAGRANT_LOG` specifies the verbosity of log messages from Vagrant.
By default, Vagrant does not actively show any log messages.

Log messages are very useful when troubleshooting issues, reporting
bugs, or getting support. At the most verbose level, Vagrant outputs
basically everything it is doing.

Available log levels are "debug," "info," "warn," and "error." Both
"warn" and "error" are practically useless since there are very few
cases of these, and Vagrant generally reports them within the normal
output.

"info" is a good level to start with if you are having problems, because
while it is much louder than normal output, it is still very human-readable
and can help identify certain issues.

"debug" output is _extremely_ verbose and can be difficult to read without
some knowledge of Vagrant internals. It is the best output to attach to
a support request or bug report, however.

## `VAGRANT_MAX_REBOOT_RETRY_DURATION`

By default, Vagrant will wait up to 120 seconds for a machine to reboot.
However, if you're finding your OS is taking longer than 120 seconds to
reboot successfully, you can configure this environment variable and Vagrant
will wait for the configured number of seconds.

## `VAGRANT_NO_COLOR`

If this is set to any value, then Vagrant will not use any colorized
output. This is useful if you are logging the output to a file or
on a system that does not support colors.

The equivalent behavior can be achieved by using the `--no-color` flag
on a command-by-command basis. This environmental variable is useful
for setting this flag globally.

## `VAGRANT_NO_PARALLEL`

If this is set, Vagrant will not perform any parallel operations (such as
parallel box provisioning). All operations will be performed in serial.

## `VAGRANT_NO_PLUGINS`

If this is set to any value, then Vagrant will not load any 3rd party
plugins. This is useful if you install a plugin and it is introducing
instability to Vagrant, or if you want a specific Vagrant environment to
not load plugins.

Note that any `vagrant plugin` commands automatically do not load any
plugins, so if you do install any unstable plugins, you can always use
the `vagrant plugin` commands without having to worry.

## `VAGRANT_POWERSHELL_VERSION_DETECTION_TIMEOUT`

Vagrant will use a default timeout when checking for the installed version
of PowerShell. Occasionally the default can be too low and Vagrant will report
being unable to detect the installed version of PowerShell. This environment
variable can be used to extend the timeout used during PowerShell version
detection.

When setting this environment variable, its value will be in seconds. By default,
it will use 30 seconds as a timeout.

## `VAGRANT_PREFERRED_PROVIDERS`

This configures providers that Vagrant should prefer.

Much like the `VAGRANT_DEFAULT_PROVIDER` this environment variable normally
does not need to be set. By setting this you will instruct Vagrant to
_prefer_ providers defined in this environment variable for any _new_
Vagrant environments. Existing Vagrant environments will continue to use
the provider they came `up` with. Once you `vagrant destroy` existing environments,
this will take effect. A single provider can be defined within this environment
variable or a comma delimited list of providers.

## `VAGRANT_PREFER_SYSTEM_BIN`

If this is set, Vagrant will prefer using utility executables (like `ssh` and `rsync`)
from the local system instead of those vendored within the Vagrant installation.

Vagrant will default to using a system provided `ssh` on Windows. This
environment variable can also be used to disable that behavior to force Vagrant to
use the embedded `ssh` executable by setting it to `0`.

## `VAGRANT_SUPPRESS_GO_EXPERIMENTAL_WARNING`

If this is set, Vagrant-go will not output a warning message about compatibility 
with Vagrant-ruby. This does not effect the stable Ruby release of Vagrant.

## `VAGRANT_DISABLE_WINCURL`

If set Vagrant will use the mingw build of curl which uses the installer provided
ca-certificates bundle instead of the native Windows curl executable.

## `VAGRANT_SERVER_URL`

This configures the remote server which Vagrant will connect to for fetching
Vagrant boxes. By default this is configured for Vagrant Cloud (https://vagrantcloud.com)

## `VAGRANT_SERVER_ACCESS_TOKEN_BY_URL`

If this is set Vagrant will change the way it authenticates with the configured
Vagrant server. When set, the authentication behavior will be reverted to the
deprecated authentication behavior of:

1. not adding an authentication header to the request
2. setting the configured access token as a query parameter on URLs

This behavior can be useful for third party servers which do not accept the
authentication header currently used with Vagrant Cloud.

## `VAGRANT_SKIP_SUBPROCESS_JAILBREAK`

As of Vagrant 1.7.3, Vagrant tries to intelligently detect if it is running in
the installer or running via Bundler. Although not officially supported, Vagrant
tries its best to work when executed via Bundler. When Vagrant detects that you
have spawned a subprocess that lives outside of Vagrant's installer, Vagrant
will do its best to reset the preserved environment during the subprocess
execution.

If Vagrant detects it is running outside of the officially installer, the
original environment will always be restored. You can disable this automatic
jailbreak by setting `VAGRANT_SKIP_SUBPROCESS_JAILBREAK`.

## `VAGRANT_USER_AGENT_PROVISIONAL_STRING`

Vagrant will append the contents of this variable to the default user agent header.

## `VAGRANT_USE_VAGRANT_TRIGGERS`

Vagrant will not display the warning about disabling the core trigger feature if
the community plugin is installed.

## `VAGRANT_VAGRANTFILE`

This specifies the filename of the Vagrantfile that Vagrant searches for.
By default, this is "Vagrantfile". Note that this is _not_ a file path,
but just a filename.

This environmental variable is commonly used in scripting environments
where a single folder may contain multiple Vagrantfiles representing
different configurations.

## `VAGRANT_WINPTY_DISABLE`

If this is set, Vagrant will _not_ wrap interactive processes with winpty where
required.
