Eivind Uggedal
41de457889
Use UNSET_VALUE for @args in shell config since [] is truthy.
2013-03-18 12:44:26 +01:00
Mitchell Hashimoto
022c1daec0
Raise error if no hostonly network on VBox with NFS [GH-1437]
2013-03-17 22:33:02 -07:00
Mitchell Hashimoto
9e80a55d7b
Puppet server host_name should be hostname [GH-1444]
2013-03-17 22:26:44 -07:00
Mitchell Hashimoto
2210765412
Fix default values for shell provisioner config
2013-03-17 16:18:49 -07:00
Mitchell Hashimoto
9a29cecfdf
Turn network, provider, and provisioner names into symbols if not
2013-03-15 22:14:04 -07:00
Mitchell Hashimoto
6e7427ca4d
Error if forwarded port with same host port is declared multiple times
2013-03-15 22:11:49 -07:00
Mitchell Hashimoto
f03175b4af
Don't "return" if FP less than port 1024 [GH-1421]
2013-03-15 15:15:54 -07:00
Mitchell Hashimoto
529cb21154
Don't use full path to manifest with Puppet, exposes bug in VMware
2013-03-15 15:00:28 -07:00
Mitchell Hashimoto
c22e4fe19b
When there is no route to host for SSH, re-establish a new connection
2013-03-14 12:51:16 -07:00
Mitchell Hashimoto
c8b829c4d2
Properly resolve cygwin paths in Cygwin environments [GH-1366]
2013-03-13 21:50:41 -07:00
Mitchell Hashimoto
57a5edbc39
Merge pull request #1366 from johnb0011/master
...
Solve Virtualbox pathing issue running under Cygwin
2013-03-13 21:41:34 -07:00
Mitchell Hashimoto
7f736f934c
Improve VBox kernel module detection for Gentoo [GH-710]
2013-03-13 21:39:05 -07:00
Mitchell Hashimoto
dea881cad2
vagrant box add --force works again [GH-1413]
2013-03-13 21:20:25 -07:00
Mitchell Hashimoto
e04efa155f
Merge pull request #1411 from chorankates-sfdc/master
...
add Solaris detection to linux provider
2013-03-11 17:25:19 -07:00
Mitchell Hashimoto
c74251a1d9
FIx vagrant package --base to work again, wrong Machine args [GH-1410]
2013-03-11 15:46:52 -07:00
Conor Horan-Kates
761a64f899
adding ability to detect solaris operating system to linux guest plugin
2013-03-11 08:42:06 -07:00
Fabio Rehm
dacd8be306
Auto remove trailing slashes from synced folders default ids
...
VirtualBox provider was having a hard time mounting the folders down
here.
2013-03-09 18:15:17 -03:00
Mitchell Hashimoto
98a9b47567
Validate the hostname setting
2013-03-09 10:07:55 -08:00
Mitchell Hashimoto
ad0e6deb3e
Better handling of merging sub-vms
2013-03-08 21:30:09 -08:00
Mitchell Hashimoto
cd36088d2f
Whitespace
2013-03-07 11:35:04 -08:00
Mitchell Hashimoto
65e3614226
Namespace VBoxManage errors properly
2013-03-06 14:47:28 -08:00
Mitchell Hashimoto
5b18cfae28
Raise properly namespaced errors in VM boot
2013-03-06 14:46:25 -08:00
Mitchell Hashimoto
0b9589a0fa
Raise an exception if the provider is reporting SSH is not ready
2013-03-06 14:27:40 -08:00
Mitchell Hashimoto
e06af4e2b9
Properly prepare the path configs for Chef
2013-03-05 11:53:57 -08:00
Mitchell Hashimoto
dc5196454e
Fix a regression where cookbooks path must be an array
2013-03-05 10:19:36 -08:00
Mitchell Hashimoto
2431fe73b8
config.ssh.password is not used
2013-03-02 15:47:58 -08:00
Mitchell Hashimoto
c80ad12336
Validate forwarded ports
2013-03-01 17:20:31 -08:00
Mitchell Hashimoto
1f2856bdf3
Default the proper hostname for config
2013-03-01 17:12:17 -08:00
Mitchell Hashimoto
3726f8d8de
Properly use new networks for built-in SSH
2013-03-01 17:07:31 -08:00
Mitchell Hashimoto
c586999a0b
Properly scope network configs by type
2013-03-01 17:02:53 -08:00
Mitchell Hashimoto
d07810af58
Properly merge networks
2013-03-01 16:49:06 -08:00
Mitchell Hashimoto
36b805367d
Fix all core code to use the new networking syntax
2013-03-01 16:48:10 -08:00
Mitchell Hashimoto
1c9af032e7
V1 upgrading works with the new network syntax
2013-03-01 16:37:37 -08:00
Mitchell Hashimoto
58871853f5
Hashes for all the networks
2013-03-01 16:31:54 -08:00
Mitchell Hashimoto
27af5ab408
Fix a typo in a warning message
2013-03-01 12:16:04 -08:00
Mitchell Hashimoto
bfc8c62ffe
vagrant plugin list works properly with isolated gem env
2013-03-01 12:14:12 -08:00
Mitchell Hashimoto
18492d5d70
Remove VirtualBox Hostname middleware
2013-02-27 21:30:01 -08:00
Mitchell Hashimoto
3c47f4f3bc
SetHostname middleware uses hostname
2013-02-27 21:29:33 -08:00
Mitchell Hashimoto
934238bba0
Rename config.vm.host_name to config.vm.hostname for V2
2013-02-27 21:29:11 -08:00
Mitchell Hashimoto
c9ad55d9e7
Built-in hostname middleware for setting hostname
2013-02-27 21:28:09 -08:00
Mitchell Hashimoto
21c218e32f
Line up equal signs because I'm anal about it
2013-02-27 19:12:45 -08:00
Mitchell Hashimoto
54bcac2e7a
Only error if minor or major version of guest additions is different
2013-02-27 19:10:49 -08:00
Mitchell Hashimoto
5d82123da9
VirtualBox should use the new port forwarding collision detection stuff
2013-02-26 13:38:00 -08:00
Mitchell Hashimoto
082cc7f92d
Retry setting default name for VirtualBox VM [GH-1368]
2013-02-23 11:52:29 -08:00
Mitchell Hashimoto
a2cd7936ea
`vagrant package` works again
2013-02-21 11:14:39 -08:00
Mitchell Hashimoto
455845d591
Merging networks works again
2013-02-18 17:14:25 -08:00
Mitchell Hashimoto
7d32c75141
Remove V2 forwarded ports config because it is unused
2013-02-18 17:14:25 -08:00
Mitchell Hashimoto
8c33814397
Retry SSH on EADDRINUSE
2013-02-18 17:14:25 -08:00
John Barney
a390b9dddf
Removing tabs added by a bad .vimrc
2013-02-10 03:49:15 -08:00
John Barney
416a765417
Removing extra file
2013-02-10 01:43:49 -08:00
John Barney
52156d7c06
Solved bug with spaces in paths causing errors
2013-02-10 01:41:15 -08:00
John Barney
e0949085a0
No longer need VBoxmanage.exe to be in PATH in Cygwin.
2013-02-10 01:40:59 -08:00
John Barney
cea8c5dafd
Whitespace issue fixed
2013-02-09 19:42:04 -08:00
John Barney
73eb86bad0
Adding Cygwin detection, and fixing pathing issue in VirtualBox driver under Cygwin
2013-02-09 19:36:56 -08:00
Mitchell Hashimoto
abdbd2de08
Warning and automatically handle "v-root"
2013-02-08 16:33:09 -08:00
Mitchell Hashimoto
a53d569656
When cleaning NFS, properly escape certain characters
2013-02-08 16:18:57 -08:00
Mitchell Hashimoto
0eef208d2d
Relax retry constrains on mounting NFS
2013-02-08 16:18:48 -08:00
Mitchell Hashimoto
6afb4326fa
Move NFS to a built-in middleware
2013-02-08 15:34:04 -08:00
Mitchell Hashimoto
a76556f3eb
Fix missing translation error in set_name
2013-02-08 15:17:50 -08:00
Mitchell Hashimoto
7bc72028bd
Use custom Gem.configuration to avoid loading gemrc files
2013-02-07 16:32:11 -08:00
Mitchell Hashimoto
2b4920b4b6
Close the tempfile for shell provisioner [GH-1040]
2013-02-07 15:23:18 -08:00
Mitchell Hashimoto
883efcf282
Warn that config.vm.customize is provider-specific for V1
2013-02-07 15:10:40 -08:00
Mitchell Hashimoto
4a1a990491
Raise a proper SSH error on ECONNRESET
2013-02-06 18:08:55 -08:00
Mitchell Hashimoto
1b3250e3b6
`vagrant plugin i nstall` shows version it installed
2013-02-06 17:08:48 -08:00
Mitchell Hashimoto
d53e189063
Use the proper provider upgrade mechanism in V1 VM
2013-02-06 16:55:49 -08:00
Mitchell Hashimoto
387692f9c8
Enable symlinks on vboxsf for VirtualBox 4.2 [GH-713]
2013-02-06 11:51:59 -08:00
Mark Peek
5f2c87d41d
Allow SSH upload to upload directories
2013-02-05 22:20:19 -08:00
Mitchell Hashimoto
6e0015db19
Add a warning if dotfile_name is used in V1
2013-02-05 22:16:08 -08:00
Mitchell Hashimoto
f8c7622414
Add a warning when upgrading an unknown network
2013-02-05 22:12:54 -08:00
Mitchell Hashimoto
a74fc014d6
Modernize chef solo configuration
2013-02-05 22:07:50 -08:00
Mitchell Hashimoto
1af3255559
Be more sane about cookbook_paths default in Chef
2013-02-05 22:02:12 -08:00
Mitchell Hashimoto
a09c72d84e
Properly default provider configs if not specified
2013-02-05 21:33:00 -08:00
Mitchell Hashimoto
79beefdb0a
Do proper provider configuration merging
2013-02-05 12:22:00 -08:00
Mitchell Hashimoto
2eeccf085b
Refactor the provider config a bit to allow multiple blocks
2013-02-05 12:08:17 -08:00
Mitchell Hashimoto
202cfebc24
SSH communicator: check_key_perms should be a Pathname
2013-02-04 21:06:28 -08:00
Mitchell Hashimoto
b9fc6068fb
Missing requires for SSH
2013-02-04 13:49:03 -08:00
Mitchell Hashimoto
967bd65ac6
Net-SSH logs come out with Vagrant debug logs
2013-02-04 13:46:59 -08:00
Mitchell Hashimoto
e3b9ddda1d
Specify specific auth methods to use for SSH.
...
Specifically no "keyboard-interactive" EVER
2013-02-04 13:37:59 -08:00
Mitchell Hashimoto
a72cfdbc00
Improved logging and such around SSH
2013-02-04 11:44:56 -08:00
Mitchell Hashimoto
bc7237130d
Use the HashiCorp gem source for plugin installs
2013-02-04 11:18:57 -08:00
Mitchell Hashimoto
c6a4bd529d
Missing interpolated variable for output message on plugin command
2013-02-04 10:43:35 -08:00
Mitchell Hashimoto
85e458b9a8
Forgot an autoload for plugins
2013-02-04 10:41:35 -08:00
Mitchell Hashimoto
55c905b43b
`vagrant plugin license` command.
2013-02-04 10:32:04 -08:00
Mitchell Hashimoto
036fa3e96a
Set more force flags when uninstalling gems to remove monkeypatch
2013-02-03 17:33:51 -08:00
Mitchell Hashimoto
635949980b
Handle the case a plugin install is a plugin not found
2013-02-03 14:29:29 -08:00
Mitchell Hashimoto
1162c2dbfc
Instead of shelling out, use the RubyGems API to install plugins
...
This gets us an accurate name of the gem even if it is installed
from a file.
2013-02-03 13:59:43 -08:00
Mitchell Hashimoto
368ca71d72
Remove the `gem` command.
2013-02-03 13:21:39 -08:00
Mitchell Hashimoto
455745277c
List plugins should have output when no plugins
2013-02-03 13:13:22 -08:00
Mitchell Hashimoto
5882d5dad6
VAGRANT_NO_PLUGINS can be used to skip plugin loading
2013-02-03 13:03:00 -08:00
Mitchell Hashimoto
9690754983
Plugin listing is a bit more sophisticated, shows version
2013-02-03 12:59:32 -08:00
Mitchell Hashimoto
bc54875a25
Move the plugins.json to the home directory
2013-02-03 12:49:21 -08:00
Mitchell Hashimoto
b6821a4fc7
Fix some include requirements for pruning
2013-02-03 10:49:26 -08:00
Mitchell Hashimoto
0d7322578b
`vagrant plugin uninstall`
2013-02-03 10:47:32 -08:00
Mitchell Hashimoto
e055bc893b
Sort the state file as well for sanity
2013-02-03 10:35:59 -08:00
Mitchell Hashimoto
76457eff16
Make sure the state file only contains unique fields
2013-02-03 10:34:43 -08:00
Mitchell Hashimoto
491356c938
Better logging for prune
2013-02-03 10:33:39 -08:00
Mitchell Hashimoto
60d21e35c9
Be silent when uninstalling gems
2013-02-03 10:32:31 -08:00
Mitchell Hashimoto
572142df7e
Perform gem uninstallation for prune
2013-02-03 10:30:52 -08:00
Mitchell Hashimoto
472d4182c1
Basic logic behind prune action is good.
2013-02-03 10:15:46 -08:00
Mitchell Hashimoto
f257d1211f
List actually compares state with gems
2013-02-02 23:59:48 -08:00
Mitchell Hashimoto
8ac7b62075
A really basic "list" command
2013-02-02 23:52:34 -08:00
Mitchell Hashimoto
53667d44db
Have a base class to invoke actions on the plugins
2013-02-02 23:38:44 -08:00
Mitchell Hashimoto
150cae86b7
Only show error if exit code != 0 of gem
2013-02-02 23:33:52 -08:00
Mitchell Hashimoto
fa50f06a4c
Error if RubyGems failed.
2013-02-02 23:31:53 -08:00
Mitchell Hashimoto
a2ef7790de
Start creating the plugin middleware sequences
2013-02-02 18:42:04 -08:00
Mitchell Hashimoto
db2e27bab6
Initial plugin command plugin
2013-02-02 17:12:46 -08:00
Mitchell Hashimoto
b3571eb5bb
Add message about removing box so something is clearly happening
2013-02-02 16:43:16 -08:00
Mitchell Hashimoto
2dc14af825
`vagrant up` says what provider it will use
2013-02-01 14:03:59 -08:00
Mitchell Hashimoto
26adfb0de6
Put the provider name in the status output
2013-02-01 13:54:52 -08:00
Mitchell Hashimoto
165dd63f78
New HandleBoxUrl built-in middleware to handlet the "box_url" config
2013-02-01 11:31:08 -08:00
Mitchell Hashimoto
3b75652256
Always log stdout/stderr for SSH
2013-02-01 10:56:00 -08:00
Mitchell Hashimoto
6d002eb4c1
Fix a little logging typo
2013-02-01 10:51:53 -08:00
Mitchell Hashimoto
b037a8d89c
Retry SSH on connection reset
2013-01-31 20:04:57 -08:00
Mitchell Hashimoto
ab4046d8af
Fix issue where set name doesn't work if saved
2013-01-31 11:26:45 -08:00
Mitchell Hashimoto
1392d9b4a5
Detect if a VM name is already taken for VirtualBox
2013-01-30 23:22:45 -08:00
Mitchell Hashimoto
4fa194899d
VirtualBox config: "name" to set the VM name [GH-1126]
2013-01-30 23:03:21 -08:00
Mitchell Hashimoto
d19194d95b
`vagrant provision` accepts `--provision-with` [GH-1167]
2013-01-30 22:54:28 -08:00
Mitchell Hashimoto
9d2f26604e
Properly handle paused VirtualBox VMs [GH-1184]
2013-01-30 22:47:45 -08:00
Mitchell Hashimoto
4ba0fc821e
Support mounting NFS folders with spaces in FreeBSD [GH-1229]
2013-01-30 22:19:13 -08:00
Mitchell Hashimoto
76ca35a095
Sanitize folder names for default virtualbox name [GH-1223]
2013-01-30 22:17:10 -08:00
Mitchell Hashimoto
f713082280
auto_nat_dns_proxy VirtualBox provider config option [GH-1313]
...
When set to false, Vagrant will no longer try to automatically manage
NAT DNS proxy settings with VirtualBox.
2013-01-30 21:03:02 -08:00
Mitchell Hashimoto
25713e4568
Show proper message when viewing status for multi-machine
2013-01-30 20:22:29 -08:00
Mitchell Hashimoto
72c10b53e7
Convert provision types to symbols so they work
2013-01-30 19:51:04 -08:00
Mitchell Hashimoto
b91d7203eb
Pass the start options into the actions so that they have effect
2013-01-30 19:49:18 -08:00
Mitchell Hashimoto
75ea4e5bdd
--provision-with works properly again
2013-01-30 19:42:54 -08:00
Mitchell Hashimoto
e0f0066c99
--no-provision works properly again
2013-01-30 19:39:21 -08:00
Mitchell Hashimoto
9156be0f84
Use the proper config version in config.vm.define calls
2013-01-30 19:24:09 -08:00
Mitchell Hashimoto
bb97351060
Change "channel" to "communicate" in all guests
2013-01-30 10:54:53 -08:00
Mitchell Hashimoto
f9a843ddd0
Fix hostonly network adapter IP for VirtualBox
2013-01-30 10:52:49 -08:00
Mitchell Hashimoto
d26aea142e
NFS properly detects hostonly network for VirtualBox
2013-01-30 10:43:53 -08:00
Mitchell Hashimoto
7eec127704
Support refreshing the machine cache
2013-01-30 10:37:40 -08:00
Mitchell Hashimoto
64042a5d35
Downloading the box_url component works again
2013-01-30 10:24:47 -08:00
Mitchell Hashimoto
aa980f2234
Forced halts work
2013-01-29 10:55:40 -08:00
Mitchell Hashimoto
f7b39476a0
vagrant destroy --force works [GH-1340]
2013-01-29 10:33:40 -08:00
Mitchell Hashimoto
eed24a08e3
Typo in setting up synced folders
2013-01-28 15:57:13 -08:00
Mitchell Hashimoto
2d2f9577af
Fix repackage command to actually work properly
2013-01-28 13:06:18 -08:00
Mitchell Hashimoto
ca0af2866e
Change output to not include the name
2013-01-23 09:45:56 -08:00
Mitchell Hashimoto
7e55e96bd9
Provisioners now sync folders
2013-01-23 09:44:53 -08:00
Mitchell Hashimoto
9cb86706b8
Make all the VirtualBox middleware aware of synced folders
2013-01-23 09:42:19 -08:00
Mitchell Hashimoto
29ca6bc6d1
Upgrade V1 shared folders to V2
2013-01-23 09:27:47 -08:00
Mitchell Hashimoto
4059a4ba2f
Define synced_folders on V2 vm config
2013-01-23 09:21:49 -08:00
Mitchell Hashimoto
44d6b9a3f7
Use a proper args array for V1 forwarded ports. Fixes #1330
2013-01-22 14:28:38 -08:00
Mitchell Hashimoto
1fd74da294
Default V1 forward port options to {} Fixes #1329
2013-01-22 14:07:27 -08:00
Mitchell Hashimoto
7c8125905d
Set the proper force halt environment
2013-01-22 13:37:44 -08:00
Mitchell Hashimoto
4780f1c07f
Use the proper env for branching on Halt in VirtualBox
2013-01-22 13:35:52 -08:00
Mitchell Hashimoto
0fc7cf7f02
Guest `halt` implementations no longer depend on machine state
2013-01-22 12:09:35 -08:00
Mitchell Hashimoto
31448c4cd4
Use the new GracefulHalt built-in for VirtualBox
2013-01-22 12:07:37 -08:00
Mitchell Hashimoto
1bf08f70d6
Add the new graceful_halt settings to `config.vm`
2013-01-22 11:37:49 -08:00
Mitchell Hashimoto
d5c5c4f523
Convert all VirtualBox provider internals to use new state API
2013-01-21 11:38:37 -06:00
Mitchell Hashimoto
8c4a7350fe
vagrant status uses new MachineState results
2013-01-21 11:35:46 -06:00
Mitchell Hashimoto
f24dba0dc5
VirtualBox provider returns new MachineState object
2013-01-21 11:34:04 -06:00
Mitchell Hashimoto
cfe55eb57f
Whitespace weirdness in the `status` command file
2013-01-21 10:47:29 -06:00
Mitchell Hashimoto
2d57afbbda
Support warnings/errors when upgrading Vagrantfiles internally
2013-01-20 22:04:50 -05:00
Mitchell Hashimoto
58eac7117b
Only merge provider/provisioner errors if they exist
2013-01-18 13:36:12 -08:00
Mitchell Hashimoto
d64c164727
VM configuration only validates the active provider
2013-01-18 13:33:02 -08:00
Mitchell Hashimoto
003ebc811c
VirtualBox uses the new validation middleware
2013-01-18 13:29:20 -08:00
Mitchell Hashimoto
7f55d5eac8
Builtin: ConfigValidate will validate your configuration
2013-01-18 13:26:14 -08:00
Mitchell Hashimoto
fff021e51d
Update Chef provisioner to new validation API
2013-01-18 13:12:02 -08:00
Mitchell Hashimoto
df32c47780
Update puppet provisioner config to latest validation API
2013-01-18 13:08:38 -08:00
Mitchell Hashimoto
5e42a99ab6
Update shell provisioner to latest validation api
2013-01-18 13:06:29 -08:00
Mitchell Hashimoto
515ed8f119
Validate providers and provisioners!
2013-01-18 12:56:19 -08:00
Mitchell Hashimoto
3f3c7027aa
Machine objects are passed into validate instead of env
2013-01-18 12:43:53 -08:00
Mitchell Hashimoto
3e9e422ce0
Convert existing validate methods to new API for kernel
2013-01-18 12:33:37 -08:00
Mitchell Hashimoto
10a051a64b
box add works even if no provider is set
2013-01-16 22:52:44 -08:00
Mitchell Hashimoto
c6c27c5e62
Catch Errno::ETIMEDOUT for SSH
2013-01-16 16:42:00 -08:00
Mitchell Hashimoto
129f1985bd
Remove the "!" on chef client provision method.
2013-01-13 16:51:16 -08:00
Mitchell Hashimoto
0c8391aedd
Chef uses the new provisioner API
2013-01-13 16:41:32 -08:00
Mitchell Hashimoto
51a227ae7e
Puppet uses the new provisioner API
2013-01-13 16:22:47 -08:00
Mitchell Hashimoto
5c9f27626c
Provisioner built-in uses new API
2013-01-13 16:09:32 -08:00
Mitchell Hashimoto
84c45a854c
Remove the ProvisionerCLeanup action from VirtualBox
2013-01-13 16:03:34 -08:00
Mitchell Hashimoto
cf2cca3b7c
Revamp the configuration internal state for defining provisioners
2013-01-13 16:02:48 -08:00
Mitchell Hashimoto
c8053c00a4
New provisioner API. Shell provisioner adheres to it.
2013-01-13 15:48:52 -08:00
Mitchell Hashimoto
f1f4f276a0
Set the virtualbox config scope
2013-01-13 12:38:51 -08:00
Mitchell Hashimoto
965427c540
Properly upgrade V1 hostonly/bridged networks to V2 config
2013-01-13 01:07:55 -08:00
Mitchell Hashimoto
212e634c3b
Make Provision a built-in action.
...
This allows other providers to just use it.
2013-01-12 16:22:37 -08:00
Mitchell Hashimoto
22571bf05b
Rescue the EHOSTDOWN error for SSH
2013-01-12 12:47:49 -08:00
Mitchell Hashimoto
124a2ee5d3
Add the --provider optional flag to `box add`
2013-01-11 21:24:57 -08:00
Mitchell Hashimoto
2d8a048946
Merge branch 'abstract-networks'
...
This introduces the new network configuration syntax for Vagrant 1.1
and forward.
== The Problem
With multiple providers, the concept of networking as it stands in Vagrant
1.0.x becomes really muddy. We have `config.vm.forward_port` and
`config.vm.network :hostonly` and `config.vm.network :bridged`. But what
if someone writes an AWS provider? What is a bridged network in AWS? It
just doesn't make sense.
Networking working out of the box with Vagrant is a core part of what
makes Vagrant "magic" to new users. It is a core part of what makes Vagrant
simple to use. One option to punt networking to provider-specific
configuration was considered, but I found the whole idea of networking
too core to Vagrant to simply punt.
Because of this, a whole new method of networking is introduced.
== The Solution
The solution is to have a high-level notion of networking for Vagrant
configuration. This should cover the most _common_ cases of networking, and
every provider should do their best to implement these high-level
abstractions, to ensure the "just works" nature of Vagrant.
In addition to this high-level networking, low-level networking options
should be exposed on the provider configuration. This allows users to do
advanced provider-specific networking configuration if they want, but aren't
required to.
== High-Level Abstractions
=== Available Types
The high-level abstractions built into Vagrant will be the following:
* Forwarded ports - A mapping of host port to guest port that one can hit
using `localhost`.
* Private network - A private network, the machine should ideally be
protected from public access.
* Public network - A public network, one that is easily accessible by
others.
I'm not sure if these are the proper abstractions. They can change up
until 2.0, but these are what we have so far.
Theoretically, here is how mappings would work. Note that this is just
an example, and the mappings in practice of such providers may or
may not map to this as follows.
**VirtualBox**
* Forwarded ports - NAT network, forwared ports.
* Private network - Hostonly network, static IP assigned.
* Public network - Bridged network, IP assigned via DHCP from router.
**VMWare**
* Forwarded ports - NAT network, forwarded ports.
* Private network - Hostonly network, static IP assigned.
* Public network - Bridged network, IP assigned via DHCP from router.
**AWS**
* Forwarded ports - Unimplemented.
* Private network - Public DNS in EC2, private IP in VPC.
* Public network - Elastic IP in EC2 and VPC.
=== Syntax
Networks are configured at the top-level of a Vagrantfile:
```ruby
Vagrant.configure("2") do |config|
# ...
config.vm.network :forwarded_port, 80, 8080
config.vm.network :private_network, "192.168.1.12"
config.vm.network :public_network
end
```
Providers should do their best to honor these configurations.
=== Advanced Options
While providers should do their best to satisfy the requirements for the
high-level abstractions, it is expected that provider-specific configuration
may be possible per network, even for the high-level configurations. For
this, provider-prefixed configuration options should be done:
```ruby
config.vm.network :forwarded_port, 80, 8000,
:vmware__device => "vmnet8"
config.vm.network :public_network,
:aws__elastic_ip => "1.2.3.4",
:vmware__device => "en0"
```
If at all possible, providers should **not** require advanced options for
these to function.
== Low-level Configuration
While the high-level configuration should satisfy the common case and make
Vagrant work out of the box for most providers, one of the large benefits of
many providers is the ability to do certain networking tricks. For example,
KVM, Hyper-V, vSphere, etc. can create and be a part of true VLANs, which
may be required for certain upstream networking rules/ACLs. For things like
this, the network configuration should go directly into the provider
configuration in some way.
Examples:
```ruby
config.vm.provider :virtualbox do |vb|
vb.network_adapter 2, :hostonly
vb.network_adapter 3, :nat
end
config.vm.provider :aws do |aws|
aws.routing_table = "route-123456"
end
```
It is up to the provider implementation to define the configuration
syntax as well as the implementation details of such an option. Other
providers are unable to see provider configurations other than their own
so it is truly private to the provider.
2013-01-11 16:18:09 -08:00
Mitchell Hashimoto
48eaa93745
Raise proper error if there aren't any NIC slots available
2013-01-11 15:57:08 -08:00
Mitchell Hashimoto
7cd663391e
Forwarded ports allow for scoped hash overrides
2013-01-11 15:52:45 -08:00
Mitchell Hashimoto
102e8f23d6
Use scoped hash overrides for high-level config
2013-01-11 15:50:09 -08:00
Mitchell Hashimoto
ccc4da0d32
Remove the old networking code
2013-01-11 15:23:20 -08:00
Mitchell Hashimoto
48995f6036
Support mac address and nic_type for host only networks
2013-01-11 15:22:55 -08:00
Mitchell Hashimoto
d09dc91d1b
Add support for bridged networks again
2013-01-11 15:21:09 -08:00
Mitchell Hashimoto
37e158c9b2
Configure networks on the VM
2013-01-11 15:06:38 -08:00
Mitchell Hashimoto
da7f227fff
Forwarded ports use the new high-level configuration
2013-01-11 14:51:49 -08:00
Mitchell Hashimoto
7e5f175d2c
Check port collisions now uses the new high-level networking
2013-01-11 14:44:27 -08:00
Mitchell Hashimoto
2d8f9baf7f
New Network VirtualBox middleware to handle the changes.
...
Note this is a WIP (hence committed on a branch)
2013-01-11 14:16:00 -08:00
Mitchell Hashimoto
8299ac38bd
Rework v1 forward_port call to append forward port networks
2013-01-10 12:06:08 -08:00
Mitchell Hashimoto
09126b20d3
Merge pull request #1283 from eladroz/master
...
Fixing guest code for RH & SUSE
2013-01-06 17:38:09 -08:00
Jordi Llonch
793ad58e96
fedora 17 & 18 support
2013-01-07 05:23:07 +11:00
Mitchell Hashimoto
7a9363e8a1
Fix ordering of forwarded_port call
2013-01-04 16:35:13 -10:00
Mitchell Hashimoto
559cf25b5f
Temporarily disable Network action while it is broken
2013-01-04 16:25:20 -10:00
Mitchell Hashimoto
2d3c0b7148
VirtualBox forwarding port uses new `network` calls
2013-01-04 16:22:38 -10:00
Mitchell Hashimoto
a2cf0270a3
Remove network validation on config. We'll re-add this later.
2013-01-04 16:13:02 -10:00
Mitchell Hashimoto
640b296f5a
Explicitly set error handling for port collision on resume
2013-01-04 16:11:40 -10:00
Mitchell Hashimoto
be36c702d6
Booting new VirtualBox VM should check for port collisions
2013-01-04 16:08:37 -10:00
Mitchell Hashimoto
5c950d8200
Remove old `forward_port` method for configuration. Use `network`
2013-01-04 15:48:54 -10:00
Mitchell Hashimoto
a4896293ff
Merge pull request #1260 from hdorio/master
...
Attempt to fix #1108 , #1109 , tcp and udp port on the same port number
2013-01-03 17:13:07 -08:00
Elad Rosenheim
0915186b26
Fix guest plugin for RH & SUSE
2012-12-31 10:38:36 +02:00