Matt Wormley
00c9f2c973
added ssh.proxy_command to handle waiting for aws ssh connection when ssh proxy in place. use config.ssh.proxy_command = "ssh -q <user>@<proxy_host> nc %h %p"
2013-04-03 13:54:47 -07:00
Mitchell Hashimoto
acd494d148
Get rid of debug exception
2013-04-03 12:50:04 -07:00
Mitchell Hashimoto
749b7b7d70
Update SSH config to be more modern
2013-04-03 12:49:59 -07:00
Mitchell Hashimoto
0f0c0b0396
Add max redirects for download
2013-04-03 12:01:12 -07:00
Mitchell Hashimoto
5e2549fe8b
Add "--insecure" flag for downloader
2013-04-03 11:57:40 -07:00
Mitchell Hashimoto
36edc4a0fd
Re-disable parallel on virtualbox
2013-04-03 08:31:43 -07:00
Mitchell Hashimoto
bd60d6b283
Lock around chdir in Subprocess for thread safety
2013-04-03 08:31:43 -07:00
Mitchell Hashimoto
c84c609633
Gracefully handle errors in parallel cases
2013-04-03 08:31:43 -07:00
Mitchell Hashimoto
df93a221e1
Up command now uses Environment#batch
2013-04-03 08:31:42 -07:00
Mitchell Hashimoto
54f7930b84
Run "up" in a batch action so it parallelizes
2013-04-03 08:31:42 -07:00
Mitchell Hashimoto
79ba9df881
Respect the "disabled" flag for shared folders for VirtualBox [GH-1004]
2013-04-03 08:31:41 -07:00
Mitchell Hashimoto
8aff752cfb
v1.1.6
2013-04-03 08:31:10 -07:00
Mitchell Hashimoto
64e360814c
Fix issue with Chef solo not using Pathname
2013-04-02 16:33:14 -07:00
Mitchell Hashimoto
82f3a3ec29
Go next if local path doesn't exist for Chef
...
This avoids issues with nil remote_paths
2013-04-02 15:05:10 -07:00
Mitchell Hashimoto
8458166c6a
Don't share default chef folder if doesn't exist on host
2013-04-02 15:04:06 -07:00
Mitchell Hashimoto
a8a7a7865d
Show an error if an invalid network type is used
2013-04-02 15:00:18 -07:00
Mitchell Hashimoto
bc2a9fe780
VBoxManage errors show stderr
2013-03-31 20:45:54 -07:00
Mitchell Hashimoto
4f1a3dad8c
Retry SSH on Errno::EACCES
2013-03-31 20:27:08 -07:00
Mitchell Hashimoto
7e1c313ff5
Properly detect in valid provisioners
2013-03-30 14:39:29 -07:00
Mitchell Hashimoto
0a86deedf1
better comments on the last change
2013-03-29 13:15:11 -07:00
Mitchell Hashimoto
30053638af
Human friendly error on exit code 126 from VBoxManage
2013-03-29 13:14:00 -07:00
Mitchell Hashimoto
40250843b3
More comprehensive synced folder validation [GH-1499]
2013-03-29 12:45:44 -07:00
Dave Marshall
b8a8286fac
Use current user's uid for NFS exports
2013-03-29 00:14:12 +00:00
Mitchell Hashimoto
665450614a
Don't error if machine shuts down really quickly on graceful [GH-1505]
2013-03-28 15:52:00 -07:00
Mitchell Hashimoto
ed038c8c64
Better detect SSh connections closing
2013-03-28 15:48:36 -07:00
Mitchell Hashimoto
361cc1ae40
Proper error message if invalid provisioner is used [GH-1515]
2013-03-28 15:38:32 -07:00
Mitchell Hashimoto
d9c1b4b3fc
Default forward port adapter for VirtualBox should be 1
2013-03-25 14:32:15 -07:00
Elan Ruusamäe
bd8a24e945
add basic pld linux support
...
PLD Linux Distribution: https://www.pld-linux.org/
2013-03-24 19:38:56 +02:00
Mitchell Hashimoto
43d85930ed
Improve network interface detection to avoid crash [GH-1480]
2013-03-22 10:51:07 -07:00
Mitchell Hashimoto
230a3ca0bf
Force to_i on adapters for forwarded ports in VirtualBox
2013-03-22 10:47:25 -07:00
Mitchell Hashimoto
a4745fb426
Properly handle forward port collision detection with auto-correct
...
[GH-1472]
2013-03-21 16:33:06 -07:00
Mitchell Hashimoto
df23c2a8fa
Move guest addition check to later, after boot [GH-1179]
2013-03-21 13:59:13 -07:00
Mitchell Hashimoto
fcd93bb133
Logging on gem sources
2013-03-20 22:33:50 -07:00
Mitchell Hashimoto
408eee746d
Stylistic changes for GH-1461
2013-03-20 22:30:31 -07:00
Mitchell Hashimoto
3fe7809eea
Merge pull request #1461 from hmalphettes/master
...
Ability to install a vagrant plugin with a specific version and source
2013-03-20 22:28:30 -07:00
Mitchell Hashimoto
78d05e73d7
Chef-solo recipe_url works properly again [GH-1467]
2013-03-20 22:20:19 -07:00
Jan Schumann
d42b7745e4
added dhcp configuration option for private networks
2013-03-20 20:18:32 +01:00
Fabio Rehm
3c4002ac4e
Fix typo on ComunicatorSSH plugin name
2013-03-20 11:47:41 -03:00
Hugues Malphettes
135adc8904
Support a few more gem parameters - take 2
2013-03-20 14:02:32 +08:00
Mitchell Hashimoto
6babeb4188
Puppet retains default module path even when custom is set [GH-1207]
2013-03-19 15:23:37 -07:00
Mitchell Hashimoto
d7b7a32814
Attempt to re-establish SSH connection on Net::SSH::Disconnect
2013-03-18 18:10:54 -07:00
Mitchell Hashimoto
c94f61d274
Only prepare NFS settings for VirtualBox if NFS is enabled
2013-03-18 13:21:06 -07:00
Mitchell Hashimoto
59282ba999
Fix overzealous errors with chef solo provisioner defaults
2013-03-18 11:24:18 -07:00
Mitchell Hashimoto
f9cf1aad8a
Merge pull request #1447 from uggedal/fix-shell-provision-args-config-validation
...
Fix shell provisioner's validation of args
2013-03-18 07:32:57 -07:00
Eivind Uggedal
c45d3ee728
Fix wrong reference to Errors::NFSNoHostonlyNetwork introduced in 022c1da
[GH-1437].
2013-03-18 14:30:26 +01:00
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
Francisco R. Santos
4a6e7c756b
Allow non privileged user vagrant to run a shell provision
2013-02-11 19:42:36 +01: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
Mitchell Hashimoto
cd969e1e05
Remove the dotfile_name configuration option.
...
The dotfile is gone now so the configuration option is obselete
2012-12-26 21:45:24 -08:00
Mitchell Hashimoto
d54d58c09c
Call `finalize!` properly on provider configurations
2012-12-26 21:44:43 -08:00
Mitchell Hashimoto
e955596939
Set a default for the "gui" option for VirtualBox
2012-12-25 09:18:47 -08:00
Mitchell Hashimoto
54a2f6b89e
Change boot_mode to a provider config `gui`.
...
OLD:
config.vm.boot_mode = :gui
NEW:
config.vm.provider :virtualbox do |vb|
vb.gui = true
end
2012-12-25 09:00:06 -08:00
Mitchell Hashimoto
2cfc5986d2
Wording changes in the status command. VM => machine
2012-12-24 10:00:28 -08:00
Mitchell Hashimoto
8fe0f86dbd
The --provider flag for `up` now actually does something.
2012-12-23 21:23:08 -08:00
Mitchell Hashimoto
8cc4910fa9
Merge commit that got missed. Ignore changes in this comit. Read message
...
This branch brings in a whole lot of awesome. The name does not do it
justice. The list of things that comes into play here:
* "virtualbox" is no longer hardcoded anywhere in core. It is the default
provider, yes, but it is 100% possible now to slip in another provider
and have it work.
* `vagrant up --provider` is a thing. This allows you to specify an
alternate provider. Note that the other commands don't support
`--provider` yet so its not THAT useful, but its getting really close.
* True V2 configuration is in place. That means that `Vagrant.configure`
calls now are loading a completely new configuration version, and old
1.0.x Vagrantfiles are V1 configuration. V1 configuration is upgraded
automatically internally, so backwards compatibility is maintained.
Magic, people, magic.
* `config.vm.provider` is the major new configuration option. This is
how provider-specific configuration will be done. For example, Vagrant
has always provided a way to make a pass of `VBoxManage` calls to
customize your VM via `config.vm.customize` in V1. This now exists
as a VirtualBox configuration option. See the example here:
https://gist.github.com/98f5a0df6a05286dfb73
* Unit tests no longer depend on VirtualBox being installed, because for
unit tests we slip in a "no-op" provider, which is a fully valid
Vagrant provider plug-in that does... NOTHING! Brilliant!
* Lots of core middleware executor improvements that make writing and
using middleware stacks a lot more enjoyable. Enjoy a set of "standard
library middlewares" provided by Vagrant in Vagrant::Action::Builtin.
The multi-provider is really shaping up here.
2012-12-23 16:34:09 -08:00
Mitchell Hashimoto
178c47992c
Remove unused files
2012-12-23 16:29:26 -08:00
Mitchell Hashimoto
a671fdcbcb
Upgrade sub-VM defines from old config
2012-12-23 16:29:26 -08:00
Mitchell Hashimoto
3808ea377f
Upgrade all other default configurations to V2
2012-12-23 16:29:26 -08:00
Mitchell Hashimoto
bf53abca76
VM config upgrades provisioners
2012-12-23 16:29:25 -08:00
Mitchell Hashimoto
ed6123ac77
Upgrade all VM configs except provisioners (TODO still)
2012-12-23 16:29:25 -08:00
Mitchell Hashimoto
9f6b091575
Comment clarification
2012-12-23 16:29:25 -08:00
Mitchell Hashimoto
9f893534f1
Upgrade VM customizations
2012-12-23 16:29:25 -08:00
Mitchell Hashimoto
e88d735cb6
Make configured VM providers default to an empty one
2012-12-23 16:29:25 -08:00
Mitchell Hashimoto
553d4a828a
Make sure provider config is always available even if no block was given
2012-12-23 16:29:25 -08:00
Mitchell Hashimoto
6478139cee
Move config.vm.customize to VirtualBox specific option
2012-12-23 16:29:25 -08:00
Mitchell Hashimoto
66849fda20
When recovering on import and destroying, force it
2012-12-23 16:29:25 -08:00
Mitchell Hashimoto
1ee470a551
Begin work on supporting provider-specific configuration
...
This works by registering a `config` with `:provider => true` with the
same name as your provider. Vagrant will then automatically configure
the provider when `config.vm.provider` is used.
2012-12-23 16:29:24 -08:00
Mitchell Hashimoto
666f9f802d
When upgrading V1 `vm` config, don't set on new if it wasn't set before
2012-12-23 16:29:24 -08:00
Mitchell Hashimoto
b6c6614fd8
Basic upgrade support for the `vm` config settings. VERY basic.
2012-12-23 16:29:24 -08:00
Mitchell Hashimoto
5adcb0fc43
Merge pull request #1232 from paulmars/master
...
Altered messages so they were _not_ self referencing.
2012-12-21 12:15:02 -08:00
Nate Smith
691cca7911
Suppress knife output
2012-12-17 12:04:53 -05:00
Nate Smith
94ce12683e
Show node name in logging
2012-12-17 11:58:15 -05:00
Nate Smith
370d6b0c98
Delete Chef client and node on cleanup
...
This fixes #1253 by shelling out to `knife` on cleanup, as per
@mitchellh's suggestion in #1255
2012-12-17 11:49:27 -05:00
Mitchell Hashimoto
b9f6afd2a0
Scrub LD_LIBRARY_PATH prior to executing VBoxManage
2012-12-16 10:37:43 -08:00
Hadrien Dorio
76c9f671f3
fixes tcp and udp on the same port number GH-1108, GH-1109
...
fix a bug in forward_port_definitions() in Action::ForwardPorts
2012-12-13 20:03:45 +01:00
Mitchell Hashimoto
42f157143f
Forward-port fix for OS X and VirtualBox bug from 1-0-stable
2012-11-20 11:00:19 -08:00
Paul McKellar
2b0c4e6385
Change description of plugins to avoid self referencial definitions. e.g. 'destroy' will destroy your VM
2012-11-19 13:10:04 -08:00
Mitchell Hashimoto
67855be77b
Add the Environment#machine method
...
This will eventually replace the Environment#vms method. Because of the
introduction of providers, the environment doesn't know what the backing
of the machines will be (and they're _machines_ now, not _vms_).
Instead, users of Environment will now call `#machine` on the
environment to retrieve a machine with the given backing provider as it
needs it.
2012-11-07 21:45:09 -08:00
Mitchell Hashimoto
83e99bbe4e
config.vm.provider (although it doesn't do anything yet)
2012-11-07 20:38:41 -08:00
Mitchell Hashimoto
d254d6f718
Configure the V2 kernel.
2012-11-06 21:28:44 -08:00
Mitchell Hashimoto
2de124e296
Turn provisioners to V2
2012-11-06 21:21:36 -08:00
Mitchell Hashimoto
81ca275792
Providers to V2
2012-11-06 21:20:55 -08:00
Mitchell Hashimoto
5a33b7ee54
Hosts to V2
2012-11-06 21:20:22 -08:00
Mitchell Hashimoto
1d2beff649
Guests to V2
2012-11-06 21:14:45 -08:00
Mitchell Hashimoto
45f211b19e
Communicators to v2 plugins.
2012-11-06 21:14:10 -08:00
Mitchell Hashimoto
e8370f0098
Convert comands to V2 plugins.
2012-11-06 21:09:29 -08:00
Mitchell Hashimoto
399437e758
Mark core config classes as upgrade safe
2012-11-03 21:41:04 -07:00
Mitchell Hashimoto
6df6f6764f
Remove plugin activation. It really isn't necessary.
...
It was only used in a couple places and it isn't necessary since you can
do the loading within the actual blocks themselves.
2012-11-03 20:29:34 -07:00
Mitchell Hashimoto
335d9fad1f
Merge pull request #1191 from lorello/master
...
Fix change_host_name on Ubuntu Hardy
2012-11-02 21:32:59 -07:00
Mitchell Hashimoto
f72054b195
Merge pull request #1209 from pbrisbin/arch-fix-3
...
Additional Arch host class fixes
2012-11-02 21:29:44 -07:00
Dan Carley
fec9410814
Omit empty lines in Puppet provisioner output
...
The sudo() block and/or the Puppet provisioner often returns newline
characters as separate strings. This makes the chomp() ineffective and
results in extraneous spacing between the output lines.
Separate out the call to chomp() so that we only do it once. Then only
output info if that line is not an empty string.
2012-10-30 11:24:10 +00:00
Mitchell Hashimoto
44804ce94b
Fix old channel usage on chef client provisioner
2012-10-26 16:39:51 -07:00
patrick brisbin
8c7c345bc0
Use a better check for systemd
...
Using `which systemctl` would return true on even non-systemd machines
during this transitional time.
2012-10-26 14:16:04 -04:00
patrick brisbin
6905513481
Fix match? and nfs? for Arch host
2012-10-26 14:15:58 -04:00
Mitchell Hashimoto
625741ab6a
Allow hostnames to be subset of box name for Ubuntu
2012-10-12 20:06:54 -07:00
Mitchell Hashimoto
3c0341b7be
Disable DNS proxy for 12.10 too
2012-10-12 20:03:25 -07:00
Mitchell Hashimoto
5b4a132fdd
Merge pull request #1176 from paulv/master
...
Fix for DNS resolution bug on Ubuntu 12.10
2012-10-12 20:01:37 -07:00
Mitchell Hashimoto
3d0c82edad
Merge pull request #1175 from petere/puppet-exitcodes
...
Check exit codes of puppet provisioners
2012-10-12 19:56:19 -07:00
Mitchell Hashimoto
544006c16c
Whitespace and such
2012-10-12 19:51:25 -07:00
LoreLLo
fc0a0d04e5
fix change_host_name for Ubuntu Hardy
2012-10-12 18:11:52 +02:00
Richard Bullington-McGuire
cced762645
Fix Windows shell provisioning
...
Resolves [GH-1036] [GH-1164] [GH-1181]
Ported fixes from patches to 1-0-stable
2012-10-11 20:33:37 -04:00
Paul Visscher
f36ab8a165
Fixes a bug with DNS resolution in Ubuntu 12.10.
2012-10-08 22:12:41 -04:00
Peter Eisentraut
901d3ad23b
Check exit codes of puppet provisioners
...
Previously, failures in applying the puppet manifests would be
ignored, because puppet apply/agent don't have any useful exit codes
by default. (Errors are printed, but vagrant continues.)
Use the option --detailed-exitcodes of puppet apply/agent to check for
success.
2012-10-08 15:22:30 -04:00
Mitchell Hashimoto
c1e99713bd
Merge pull request #1146 from piavlo/master
...
make chef provisioners to write human readable dna.json
2012-09-27 14:01:47 -07:00
Mitchell Hashimoto
88277fa2e0
Merge pull request #1067 from jtimberman/chef-command-args
...
Add config.arguments for Chef
2012-09-27 13:53:29 -07:00
Mitchell Hashimoto
8cc0504c53
Merge pull request #1118 from hugowetterberg/master
...
Emitting vagrant-mount events when mounting nfs volumes
2012-09-27 10:44:34 -07:00
Piavlo
c2eb523b05
create human readable dna.json
2012-09-20 19:58:37 +03:00
Mitchell Hashimoto
184f6dccb2
Forward port GH-1142
2012-09-18 22:26:51 -07:00
Mitchell Hashimoto
f7c231758f
Forward Port GH-1140
2012-09-18 22:19:51 -07:00
Mitchell Hashimoto
678c6a070d
VirtualBox 4.2 support
2012-09-13 19:11:32 -07:00
Hugo Wetterberg
17a6b64309
Emitting vagrant-mount events when mounting nfs volumes
2012-09-13 09:14:40 +02:00
Dan Midwood
bdf72c5554
Use the communicate interface for ArchLinux guests
2012-09-02 18:00:11 +01:00
Mitchell Hashimoto
5691df37a1
Retry SSH on EHOSTUNREACH
...
This is one of those errors that happens once in awhile that can be
retried.
2012-08-29 13:39:03 -07:00
Mitchell Hashimoto
ed1bc58735
Fix shell provisioner to run with new machine abstraction
2012-08-21 16:57:59 -07:00
Mitchell Hashimoto
a238e06795
Fix up the chef solo provisioner to work with new machine abstraction
2012-08-21 16:57:17 -07:00
Mitchell Hashimoto
f193d69fbc
Fix up the debian guest to work with the new machine API
2012-08-20 14:58:58 -07:00
Mitchell Hashimoto
1efee6edcb
Use the new communication interface for Ubuntu guest
2012-08-20 12:15:42 -07:00
Mitchell Hashimoto
b328e95045
Make puppet provisioner work with latest machine changes.
...
Specifically it was still reference env[:vm] which is now
`env[:machine]`.
2012-08-20 12:13:04 -07:00
Mitchell Hashimoto
391dc39267
Merge branch 'machine-abstraction'
...
This branch brings in the "machine abstraction" code. This is a major
milestone in the development of Vagrant as it abstracts all of the
VirtualBox-specific code out into a plugin. There is zero VirtualBox
specific code in the core ("lib/") directory at this point. Read on for
important points.
== Gotchas
White it is technically possible now to write plugins for other
providers, there is still major work to be done to make this feasible.
The plugin interface itself is pretty much done, but there are some
issues:
* ":virtualbox" is the hardcoded provider to be used at the moment.
* There is no way to configure a provider. For example,
`config.vm.customize` would never work for anything other than
VirtualBox, so there needs to be a way to have provider-specific
configuration. This will come soon.
* Shared folders and networking need to be rearchitected to be friendly
for multiple providers, since it is unrealistic that a provider such as
EC2 could provide the same level of networking, for example.
* There is no way easy way (like `vagrant package --base`) to create
boxes for providers other than VirtualBox. This will be addressed in a
whole new feature of Vagrant probably in a future release after
provider stuff has shipped.
== Writing a Provider
To write a provider, you create a Vagrant plugin that defines a
"provider". See the "plugins/providers/virtualbox/plugin.rb" for more
details. Providers themselves have an exremely simple API. The burden
for writing providers mostly rests on the fact that you must define
complex middleware sequences.
Lots more work to come in the future, but this is a BIG MILESTONE!
2012-08-19 19:27:09 -07:00
Mitchell Hashimoto
ba0e426507
Get vagrant package --base working in some hacky way.
...
`vagrant package --base` is deprecated for a future feature so I didn't
want to waste any brain cycles on how to do this the "right" way since a
new system will be introduced to do this sort of thing in teh future.
2012-08-19 18:51:36 -07:00
Mitchell Hashimoto
47fe278667
`vagrant box add` works again. Box verification remove temporarily.
...
The built-in middleware sequences will now be hardcoded onto
Vagrant::Action. Other plugins can hook into these sequences to provide
verification and so on. So the VirtualBox plugin will hook into that
action sequence and add verification.
2012-08-18 16:13:14 -07:00
Mitchell Hashimoto
85a4fb82a8
`vagrant package` a single VM works!
2012-08-15 21:04:37 -07:00
Mitchell Hashimoto
b659191a02
`vagrant up`!
2012-08-14 22:38:41 -07:00
Mitchell Hashimoto
aaeb060f33
`vagrant provision`
2012-08-14 21:21:31 -07:00
Mitchell Hashimoto
7aa083d259
`vagrant reload` now works with the new machine abstraction
2012-08-14 21:12:41 -07:00
Mitchell Hashimoto
85a499ffb8
Properly handle the case that VM doesn't exist for the VB driver.
2012-08-14 20:27:28 -07:00
Mitchell Hashimoto
0cc63c05e2
`vagrant destroy` fully works
2012-08-13 23:31:12 -07:00
Mitchell Hashimoto
2fc18f7207
`destroy` gets a little farther, and properly halts the VM
2012-08-13 23:18:50 -07:00
Mitchell Hashimoto
bca8663742
`vagrant resume` works with the new machine abstraction
2012-08-13 20:03:35 -07:00
Mitchell Hashimoto
db11c16b79
ssh_config works with new machine abstraction
2012-08-13 19:48:26 -07:00
Mitchell Hashimoto
83b908f3d8
`vagrant suspend` works with new machine abstraction
2012-08-13 19:30:41 -07:00
Mitchell Hashimoto
aad022a626
Switch all `channel` to `communicate` in the linux guest
2012-08-12 19:03:31 -07:00
Mitchell Hashimoto
0eddda3552
Halt works with new machine.
...
This required some modifications to the linux guest implementation. And
the other guests will have to be modified as well. This is because
`channel` is now `communicate`.
2012-08-12 18:54:52 -07:00
Mitchell Hashimoto
f9752d78d8
Properly resolve and load the guest class impl for Machines
2012-08-12 18:35:19 -07:00
Mitchell Hashimoto
7efee573b8
`vagrant ssh -c` now exits with the proper exit code
2012-08-11 20:35:34 -07:00
jtimberman
50e9f83970
Add config.arguments for Chef
...
* Adds chef.arguments to Chef::Provisioner::Config
* Usable in both chef-client and chef-solo
* Specify as a string, "-L /tmp/foo.log", e.g.
2012-08-10 12:58:43 -06:00
Mitchell Hashimoto
5e70ad0ec2
`vagrant ssh -c` now uses a middleware sequence
2012-08-10 00:57:23 -07:00
Mitchell Hashimoto
64afd578b3
Just always return the SSH communicator for machines for now.
...
In the future we'll actually find a matching communicator but for now
since we're just focusing on machine abstraction, we just return SSH.
2012-08-08 21:57:08 -07:00
Mitchell Hashimoto
595e7cee0e
Move SSH communication to a plugin
2012-08-08 21:48:51 -07:00
Mitchell Hashimoto
f1c1dfad2f
Some SSH command cleanup
2012-08-07 11:31:55 -07:00
Mitchell Hashimoto
e0ec679838
`vagrant ssh` with full console works with new provider.
...
This works by now calling the `:ssh` action on the provider. This action
is allowed to do whatever it pleases, but should at some point probably
call the `SSHExec` built-in middleware.
The `SSHExec` built-in middleware was added. This uses the information
returned by `Machine#ssh_info` and uses the `Vagrant::Util::SSH` helper
to exec into the remote machine. The provider should do any work upfront
in verifying that the machine is ready to be SSHed into.
2012-08-05 13:45:24 -07:00
Mitchell Hashimoto
9db982f7a4
Expose the provider via the machine object.
2012-08-04 11:16:31 -07:00
Mitchell Hashimoto
002a83d7f7
Update SSH config help to properly reflect "--host" usage.
2012-07-30 11:42:29 -07:00
Mitchell Hashimoto
1e997f87d7
Clean up the actions a bit, move logic into actual middleware.
...
This is a good idea because in the future it will allow plugins to
properly override these behaviors.
2012-07-28 19:58:10 -07:00
Mitchell Hashimoto
31a3a3f2e2
Start moving the halt commands over to the new provider interface
2012-07-28 10:43:16 -07:00
Mitchell Hashimoto
e5f250121a
Call now only yields the environment
2012-07-27 19:34:46 -07:00
Mitchell Hashimoto
118377e6f0
Destroy sequence asks the user for confirmation.
2012-07-27 19:29:40 -07:00
Mitchell Hashimoto
90517a0f9b
The `Call` built-in middleware allows for conditional MW sequences.
...
Read the documentation for more information.
2012-07-26 23:56:47 -07:00
Mitchell Hashimoto
5eed3b8417
Building up the `destroy` action again using new provider API.
...
This shows me moving the built-in middleware sequences to the provider
and how I'm organizing all that.
2012-07-26 22:39:27 -07:00
Mitchell Hashimoto
5e1bb5bf63
Fix typo to make puppet provisioners work again
2012-07-25 15:11:01 -07:00
Mitchell Hashimoto
44b4b9dfef
Move drivers to the VirtualBox plugin. Use Machine class.
...
This starts the transition of replacing VM with Machine. Machine still
isn't ready to fully replace VM but by moving it now, I'm able to find
the spots that need to be fixed. At this point `vagrant status` works
with the new provider interface.
2012-07-24 21:32:38 -07:00
Mitchell Hashimoto
3519bf0372
Add the "provider" API to the V1 plugin.
2012-07-15 11:17:58 -07:00
Bob Maerten
3dda019cac
change_host_name should change mailname too
...
On Debian systems config.hostname directive should change /etc/mailname
in order to prevent problems with default mailer trying to contact
default vm's name.
2012-07-13 15:07:56 +02:00
Mitchell Hashimoto
c634cbedcc
Handle interrupts more gracefully on the warning message
2012-07-11 18:47:41 -07:00
Mitchell Hashimoto
690d380b77
Use the new BoxCollection API
2012-07-11 18:41:13 -07:00
Mitchell Hashimoto
f20666e230
Automatically upgrade the boxes all over.
2012-07-11 18:36:23 -07:00
Mitchell Hashimoto
23dfc45df2
`box repackage` now uses new Box API
2012-07-11 18:36:22 -07:00
Mitchell Hashimoto
6bb621026f
`vagrant box add` uses the new API.
...
This assumes VirtualBox boxes for now, which is fine.
2012-07-11 18:36:22 -07:00
Mitchell Hashimoto
5b18a6525d
`vagrant box remove` uses new API
2012-07-11 18:36:22 -07:00
Mitchell Hashimoto
6386ec2b79
`vagrant box list` uses the new collection stuff
2012-07-11 18:36:22 -07:00
Mitchell Hashimoto
2995b6439d
Interrupt when asking to destroy a VM should exit. [GH-1017]
2012-07-11 18:33:28 -07:00
James Turnbull
97420a990a
This commit has three minor changes to the Puppet provisioners:
...
* Renamed the run_puppet_client method in the puppet provisioner
to clarify it's function running Puppet in apply mode from the
command line.
* Renamed the run_puppet_client method in the puppet server provisioner
to clarify the agent is being run.
* Changed the Puppet server provisioner to use the more standard Git-style
command line structure. The puppetd binary has been deprecated in favour of
puppet with the agent flag.
2012-07-11 13:59:20 -04:00
Mitchell Hashimoto
627066c986
Point to TemplateRenderer properly in Chef provisioner base
2012-06-28 08:29:48 -07:00
Mitchell Hashimoto
70bdd9f56e
Move host base class to a plugin component
2012-06-27 09:26:03 -07:00
Mitchell Hashimoto
53d8c28c8e
Move guests to Vagrant.plugin("1", :guest)
2012-06-26 16:28:49 -07:00
Mitchell Hashimoto
b23dda54b8
Move command base class to a plugin component
2012-06-26 16:18:02 -07:00
Mitchell Hashimoto
55528e051c
Move provisioners to Vagrant.plugin("1", :provisioner)
2012-06-26 16:04:51 -07:00
Mitchell Hashimoto
590f648fc0
Built-in plugins use Vagrant.plugin("1", :config)
2012-06-26 16:02:44 -07:00
Mitchell Hashimoto
2e00a007ce
Move provisioner superclass into the V1 namespace
2012-06-26 15:06:04 -07:00
Mitchell Hashimoto
41bc8e7454
Move Config::V1::Base to Vagrant::Plugin::V1::Config
2012-06-24 17:06:11 -07:00
Mitchell Hashimoto
9bc1ea5f04
Use config finalize to move some version-specific logic to the version
...
This moves out the concept of a "default VM" from the Environment class
and makes it the responsibility of the V1 configuration that at least
one VM is defined on it. This lets the configuration ultimately decide
what a "default" implementation is.
2012-06-23 12:48:53 -07:00
Mitchell Hashimoto
7e19d6849b
Config loader no longer assumes latest version for procs.
...
Previously, all procs were assumed to just be the current version. This
is certainly not going to be true always so now the version number of
the configuration must be explicit if you're assigning a proc to the
configuration loader.
2012-06-23 12:06:54 -07:00
Mitchell Hashimoto
76f7da0618
FreeBSD guest network config upload must be a file.
2012-06-22 20:56:41 -07:00
Mitchell Hashimoto
bd1def6b22
Renamespace Kernel to Kernel_V1
2012-06-14 18:49:20 -07:00
Jens Braeuer
ae92895411
Fix problem that Puppet module-paths were re-ordered by Vagrant.
...
Puppet module-path were re-ordered by Vagrant due to the use of a
hash. This could lead to unpredictable results.
2012-06-07 20:37:15 +02:00
Mitchell Hashimoto
da98ce59b3
Basic fixes to the configure_networks for Arch
2012-06-01 14:26:34 +02:00
Marco Monteiro
f6c33fb4ef
Fix reference to undefined variable
2012-06-01 14:24:15 +02:00
Marco Monteiro
5bbabaf5a5
Fix multiple ethernet interface support on Arch Linux
2012-06-01 14:23:15 +02:00
Mitchell Hashimoto
a1b37980e3
Defer loading for commands to last possible moment
2012-05-23 16:18:29 -07:00
Mitchell Hashimoto
22e54eed58
Remove autoload from provisioners plugins
2012-05-23 16:07:08 -07:00
Mitchell Hashimoto
162227765f
Change kernel plugin to use `activated` block
2012-05-23 16:04:41 -07:00
Mitchell Hashimoto
096e61b122
Get rid of autoload in hosts plugins
2012-05-23 16:03:14 -07:00
Mitchell Hashimoto
459d82689e
Get rid of autoload use in Guests
...
I don't use `activated` here because I'd really like to optimize
performance as much as possible, and loading files from disk is
generally slow. So instead of using `activated` I load the file at the
last possible moment which is when the exact class is being requested.
I don't think many people will do this outside of the core, and I'm not
too concerned.
2012-05-23 15:57:43 -07:00
Mitchell Hashimoto
8846a19c70
Convert all command plugins to use the new `activated` block
2012-05-21 22:43:13 -07:00
Benedikt Böhm
46d72bb53a
fix typo in change_host_name
2012-05-14 17:16:41 +02:00
Mitchell Hashimoto
00aba5ac03
Plugin easy commands.
...
Easy commands are well... easy! They don't offer the full power of
creating a completely custom command class, but they let you do the
basics (what almost everyone needs) with minimal fuss. Example:
class MyPlugin < Vagrant.plugin("1")
name "my-plugin"
easy_command "foo" do |action|
puts "HELLO!"
end
end
NOTE: The "action" stuff isn't done yet, but will be soon!
2012-05-05 18:57:29 -07:00
Mitchell Hashimoto
ca405b29f6
Don't support passing in the config into Chef anymore
2012-05-01 22:04:09 -07:00
Mitchell Hashimoto
804f6411fa
Fix reference to the wrong error class
2012-04-30 21:07:09 -07:00
Mitchell Hashimoto
582f214024
Fix some basic mistakes with commands
2012-04-21 17:32:13 -07:00
Mitchell Hashimoto
9956e6d012
Better directory structure for plugins
2012-04-20 16:53:01 -07:00
Mitchell Hashimoto
86a846e445
Remove old command directory
2012-04-19 21:33:26 -07:00
Mitchell Hashimoto
6161c04fcf
Fix some issues with commands not referencing proper classes
2012-04-19 14:02:03 -07:00
Mitchell Hashimoto
1489854d70
Move commands into plugins
2012-04-19 13:59:48 -07:00
Mitchell Hashimoto
661f20bb91
Move hosts to a plugin system
2012-04-18 22:20:45 -07:00
Mitchell Hashimoto
1cbac3167f
Move provisioners into plugins
2012-04-18 21:53:19 -07:00
Mitchell Hashimoto
1b2fa748f9
Move all guests to plugins, even the distros
2012-04-18 21:23:25 -07:00
Mitchell Hashimoto
7766eb6098
Major guests have been moved to plugins
2012-04-18 21:03:03 -07:00
Mitchell Hashimoto
d6d5475762
Add README to plugin directory
2012-04-18 17:48:06 -07:00
Mitchell Hashimoto
dd459170dd
Start moving guest configuration out into plugins
2012-04-18 17:38:20 -07:00
Mitchell Hashimoto
a62e859231
Get rid of the UNSET_VALUE stuff, save it for v2
2012-04-18 17:09:25 -07:00
Mitchell Hashimoto
b38fb5e974
Loader uses the new configuration classes
2012-04-18 17:03:34 -07:00
Mitchell Hashimoto
98d6bf958e
Move core config into a plugin
2012-04-17 22:12:27 -07:00