This is a big commit, and I apologize in advance for the future
git-blames all pointing to me. This commit does a few things:
1. Merges the website/docs and website/www repo into a single website repo
to be in line with other HashiCorp projects
2. Updates to use middleman-hashicorp
3. Converts less to scss to be in line with other projects
4. Updates page styles to be in line with other projects
5. Optimizes images
6. Prepare for S3 + Fastly deployment with scripts, etc.
7. Removes blog posts (they have been transferred to hashicorp.com with
redirects in place
8. Updated sitemap generation script for better SEO
9. Fixed many broken links
10. Add description to all fields
92 lines
3.1 KiB
Markdown
92 lines
3.1 KiB
Markdown
---
|
|
layout: "docs"
|
|
page_title: "Configuration - Providers"
|
|
sidebar_current: "providers-configuration"
|
|
description: |-
|
|
While well-behaved Vagrant providers should work with any Vagrantfile with
|
|
sane defaults, providers generally expose unique configuration options so that
|
|
you can get the most out of each provider.
|
|
---
|
|
|
|
# Configuration
|
|
|
|
While well-behaved Vagrant providers should work with any Vagrantfile with sane
|
|
defaults, providers generally expose unique configuration
|
|
options so that you can get the most out of each provider.
|
|
|
|
This provider-specific configuration is done within the Vagrantfile
|
|
in a way that is portable, easy to use, and easy to understand.
|
|
|
|
## Portability
|
|
|
|
An important fact is that even if you configure other providers within
|
|
a Vagrantfile, the Vagrantfile remains portable even to individuals who
|
|
do not necessarily have that provider installed.
|
|
|
|
For example, if you configure VMware Fusion and send it to an individual
|
|
who does not have the VMware Fusion provider, Vagrant will silently ignore
|
|
that part of the configuration.
|
|
|
|
## Provider Configuration
|
|
|
|
Configuring a specific provider looks like this:
|
|
|
|
```ruby
|
|
Vagrant.configure("2") do |config|
|
|
# ...
|
|
|
|
config.vm.provider "virtualbox" do |vb|
|
|
vb.customize ["modifyvm", :id, "--cpuexecutioncap", "50"]
|
|
end
|
|
end
|
|
```
|
|
|
|
Multiple `config.vm.provider` blocks can exist to configure multiple
|
|
providers.
|
|
|
|
The configuration format should look very similar to how provisioners
|
|
are configured. The `config.vm.provider` takes a single parameter: the
|
|
name of the provider being configured. Then, an inner block with custom
|
|
configuration options is exposed that can be used to configure that
|
|
provider.
|
|
|
|
This inner configuration differs among providers, so please read the
|
|
documentation for your provider of choice to see available configuration
|
|
options.
|
|
|
|
Remember, some providers do not require any provider-specific configuration
|
|
and work directly out of the box. Provider-specific configuration is meant
|
|
as a way to expose more options to get the most of the provider of your
|
|
choice. It is not meant as a roadblock to running against a specific provider.
|
|
|
|
## Overriding Configuration
|
|
|
|
Providers can also override non-provider specific configuration, such
|
|
as `config.vm.box` and any other Vagrant configuration. This is done by
|
|
specifying a second argument to `config.vm.provider`. This argument is
|
|
just like the normal `config`, so set any settings you want, and they will
|
|
be overridden only for that provider.
|
|
|
|
Example:
|
|
|
|
```
|
|
Vagrant.configure("2") do |config|
|
|
config.vm.box = "precise64"
|
|
|
|
config.vm.provider "vmware_fusion" do |v, override|
|
|
override.vm.box = "precise64_fusion"
|
|
end
|
|
end
|
|
```
|
|
|
|
In the above case, Vagrant will use the "precise64" box by default, but
|
|
will use "precise64_fusion" if the VMware Fusion provider is used.
|
|
|
|
<div class="alert alert-info">
|
|
<strong>The Vagrant Way:</strong> The proper "Vagrant way" is to
|
|
avoid any provider-specific overrides if possible by making boxes
|
|
for multiple providers that are as identical as possible, since box
|
|
names can map to multiple providers. However, this is not always possible,
|
|
and in those cases, overrides are available.
|
|
</div>
|