Commit Graph

720 Commits

Author SHA1 Message Date
Mitchell Hashimoto 9fe59d9863 Fix regression that @geetarista fixed. 2013-04-15 17:03:22 -07:00
Mitchell Hashimoto a3fdfa0989 Default node name 2013-04-15 17:02:53 -07:00
Robby Colvin 845e966e0b Fix typo in chef provisioning 2013-04-15 16:34:22 -07:00
Mitchell Hashimoto 79099086f5 Switch chef configuration to new-style 2013-04-15 12:08:08 -07:00
Shawn Dahlen 8afd3f105c Fix use of config.ssh.username and reset provisioning path permissions.
This commit contains two fixes:

- The Chef provisioner was incorrectly referencing config.ssh.username
  instead of machine.ssh_info[:username]. With the new change to default
  ssh configuration, if a user had not set config.ssh.username,
  provisioning would fail.

- The shell provisioner was not appropriately changing permissions to
  the upload path. If a different ssh user attempted to use a shell
  provisioner, provisioning would fail. The same case applied to
  the Chef provisioner -- while permissions were being reset, they
  were not done recursively.
2013-04-11 08:05:50 -04:00
Mitchell Hashimoto e64696e839 Automatically override forwarded ports if host ports match 2013-04-10 15:37:04 -07:00
Mitchell Hashimoto c4422d7198 FreeBSD and OpenBSD guest detection 2013-04-10 14:15:02 -07:00
Mitchell Hashimoto d76f964470 Linux guest detection 2013-04-10 13:39:21 -07:00
Mitchell Hashimoto 6b3e028166 Output shell script that is running [GH-1568] 2013-04-10 11:27:45 -07:00
Mitchell Hashimoto 28de46f3b4 Not an error if cookbooks path is missing 2013-04-10 11:21:18 -07:00
Mitchell Hashimoto f48587bcd1 Shared folders with the same guest path overwrite each other 2013-04-10 10:44:53 -07:00
Mitchell Hashimoto ba07d303e5 More robust hostname checking for RedHat [GH-1566] 2013-04-10 09:33:33 -07:00
Mitchell Hashimoto 5690aef4b0 Don't duplicate names when defining new machines in VFile 2013-04-09 19:05:35 -07:00
Mitchell Hashimoto c1f53a4ace ssh-config doesn't raise exception when VB machine not created [GH-1562] 2013-04-09 08:47:52 -07:00
Mitchell Hashimoto 41d6553a5d Don't allow the forward_* SSH option sto be default, no sense 2013-04-08 21:03:51 -07:00
Mitchell Hashimoto d03938e3c1 config.ssh properly overrides provder-detected [GH-1479] 2013-04-08 20:50:15 -07:00
Mitchell Hashimoto 66ff86fda5 Auto-detect policy server IP for CFEngine 2013-04-08 15:30:41 -07:00
Mitchell Hashimoto 9b9ed2d2aa files_path setting for CFEngine 2013-04-08 15:15:45 -07:00
Mitchell Hashimoto b279f222a2 run_file path validation for CFEngine 2013-04-08 15:02:33 -07:00
Mitchell Hashimoto 67917353b7 Add support for policy hub bootstrapping 2013-04-08 14:47:11 -07:00
Mitchell Hashimoto 28432fc813 Specify extra args for the cf-agent call 2013-04-08 14:27:27 -07:00
Mitchell Hashimoto 292bada134 Support config.classes for extra classes in CFEngine 2013-04-08 14:24:46 -07:00
Mitchell Hashimoto c25ce9f732 run_file and single_run mode in CFEngine 2013-04-08 14:21:10 -07:00
Mitchell Hashimoto ae8e8830c4 Some CFEngine config validation 2013-04-08 13:51:40 -07:00
Mitchell Hashimoto c457285fb6 Basic CFEngine boostrapping 2013-04-08 13:46:03 -07:00
Mitchell Hashimoto 53e15263f5 Start working on CFEngine bootstrap 2013-04-08 13:28:54 -07:00
Mitchell Hashimoto 8f9a5671de Support installing CFEngine on RedHat 2013-04-08 13:09:52 -07:00
Mitchell Hashimoto 9599d8a45d Starting work on CFEngine, installs on Debian 2013-04-08 13:05:53 -07:00
Mitchell Hashimoto 4d3159ff7e Fix configure_networks for Fedora as well 2013-04-08 11:08:14 -07:00
Mitchell Hashimoto 78d4d0a790 Networks come back up properly after reboot on RedHat [GH-921] 2013-04-08 11:02:03 -07:00
Mitchell Hashimoto fd157476b4 extend should be include for TemplateRenderer in caps 2013-04-08 10:47:19 -07:00
Mitchell Hashimoto a9b2ab33ad Convert network type to symbol so that strings can be used 2013-04-08 10:39:26 -07:00
Mitchell Hashimoto 88b34d3b71 Message on `up` that VM is already running [GH-1558] 2013-04-08 09:09:23 -07:00
Mitchell Hashimoto c1acdc2409 Get rid of ruby warning from shadowing in SSH command 2013-04-07 22:10:50 -07:00
Mitchell Hashimoto 8b2bf72e8a Fix parsing SSH extra args in multi-machine envs [GH-1545] 2013-04-07 22:07:55 -07:00
Mitchell Hashimoto 7fa9892b75 Send SSH keep-alive packets [GH-516] 2013-04-07 21:51:14 -07:00
Mitchell Hashimoto 142cc4bef7 rtcuseutc as sane default for VBox [GH-912] 2013-04-07 15:04:38 -07:00
Mitchell Hashimoto c34c8b39c3 Expand Cygwin path to Windows for VirtualBox shared folders 2013-04-06 22:08:41 -07:00
Mitchell Hashimoto 373a1d8633 Properly expand cygwin paths to Windows path for vboxmanage 2013-04-06 22:06:33 -07:00
Mitchell Hashimoto d7990721a0 s/not/!/ in ansible provisioner config 2013-04-05 09:43:56 -07:00
Collin Allen d783b33fe2 Validate that extra_vars is a hash 2013-04-05 09:40:32 -07:00
Collin Allen c2b43787c5 Make Ansible extra_vars a hash instead of a string 2013-04-05 08:43:45 -07:00
Mitchell Hashimoto 1957efb4e1 Nicer error if ansible-playbook is not installed on the host 2013-04-04 14:01:26 -07:00
Mitchell Hashimoto 896db2f190 Ansible provisioner support CHANGELOG 2013-04-04 13:48:58 -07:00
Mitchell Hashimoto 1c2a46ba72 Merge ansible provisioner [GH-1465] 2013-04-04 13:39:36 -07:00
Mitchell Hashimoto 7b9e5fd4a7 Include should be extend for class methods 2013-04-04 12:25:40 -07:00
Mitchell Hashimoto 439499fc11 Solaris capabilities 2013-04-04 12:25:10 -07:00
Mitchell Hashimoto 5e09577a76 Lots more guest capabilities converted 2013-04-04 12:09:40 -07:00
Mitchell Hashimoto 2c362d4d28 FreeBSD capabilities 2013-04-04 11:56:42 -07:00
Mitchell Hashimoto 8bf9fb17b1 Remove freeBSD config because it isn't used anymore 2013-04-04 11:50:05 -07:00
Mitchell Hashimoto 0e4e347308 Fedora capabilities 2013-04-04 11:49:26 -07:00
Mitchell Hashimoto 7f33081387 Convert arch to capabilities 2013-04-04 11:39:58 -07:00
Collin Allen 2aa96fc550 Enable Ansible color output 2013-04-04 11:31:27 -07:00
Collin Allen b52d4dcd58 Add config.rb newline 2013-04-04 00:24:14 -07:00
Collin Allen bbe08744a2 Use Vagrant::Util::Subprocess.execute instead of SafeExec 2013-04-04 00:07:59 -07:00
Collin Allen 28f4a4c890 Update 'require' calls to resemble shell provisioner 2013-04-04 00:07:30 -07:00
Mitchell Hashimoto 0fbe9b0aca Ubuntu change_host_name cap 2013-04-03 23:53:17 -07:00
Mitchell Hashimoto 22f3ea6606 Remove the linux config, not used anyways 2013-04-03 23:50:12 -07:00
Mitchell Hashimoto 067f431ee9 Better debugging on searching for capabilities 2013-04-03 23:46:39 -07:00
Mitchell Hashimoto 2f232e0175 Halt and mount NFS are caps 2013-04-03 23:33:20 -07:00
Mitchell Hashimoto 61d2f9f96f SetHostname uses new cap system 2013-04-03 23:18:12 -07:00
Mitchell Hashimoto 63f28a9011 Nicer error messages for new linux caps 2013-04-03 23:14:24 -07:00
Mitchell Hashimoto 2a542dab02 Switch configure_networks to capabilities system 2013-04-03 23:08:33 -07:00
Collin Allen 5a052874b4 Improve ansible provisioner error checks 2013-04-03 23:07:07 -07:00
Mitchell Hashimoto 28d3f274d8 First capability for linux 2013-04-03 23:01:43 -07:00
Collin Allen a1ad1207bd Add ansible provisioner 2013-04-03 22:56:32 -07:00
Mitchell Hashimoto 52f3847b0a Laying the foundation for the new guest plugin 2013-04-03 21:47:57 -07:00
Mitchell Hashimoto 4ffc2c3b74 Invalid configuration keys are caught and shown in user friendly way
[GH-1484]
2013-04-03 16:18:37 -07:00
Mitchell Hashimoto fc708bc139 Respect :mac option for networks [GH-1536] 2013-04-03 15:41:42 -07:00
Mitchell Hashimoto 52a2f48b20 Provider-specific configuration overrides via 2nd block param
Example:

Vagrant.configure("2") do |config|
  # ...

  config.vm.provider :virtualbox do |p, vb_config|
    vb_config.vm.box = "virtualbox_box"
  end
end
2013-04-03 14:57:14 -07:00
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