Commit Graph

1674 Commits

Author SHA1 Message Date
Nikhil Benesch 2df36892dd synced_folders/rsync: only chown when necessary [GH-3525]
Run remote rsync as root to guarantee that rsync can write to guestpath.
This obviates the need to chown the guestpath to the SSH user prior to
sync.

This brings a substantial speedup (2x on a moderately-sized shared
folder) and properly triggers filesystem notifications on only the files
changed by a given sync.
2014-04-25 15:00:12 -04:00
Mitchell Hashimoto 6870de3f6d core: add Vagrant.latest_version 2014-04-24 20:09:32 -07:00
Mitchell Hashimoto 63dffe3f92 commands/version: check latest version 2014-04-24 19:54:26 -07:00
Mitchell Hashimoto ffdb276d4c Merge pull request #3536 from shadowfax-chc/force-overwrite-salt-configs
provisioners/salt: force overwrite of salt configs and keys.
2014-04-24 19:14:40 -07:00
Mitchell Hashimoto de6759f94d Merge pull request #3538 from mitchellh/f-box-usage
Track box usage (local) to know if envs are using boxes
2014-04-24 10:42:02 -07:00
Timothy Messier c4ae0badc3 Force overwrite of salt configs and keys.
This will tell the salt-bootstrap script to overwrite the master/minion
configs and/or keys each time provision is called. #3524 #3176
2014-04-24 11:56:54 -04:00
Shawn Neal cad3dde760 Fixed whitespacing in command_filter and file_manager 2014-04-24 07:52:13 -07:00
Shawn Neal afeb60c850 ivars should be alphabetized 2014-04-24 07:50:24 -07:00
Shawn Neal d5d9918e48 Cleanup whitespace and comments in WinRM command filters 2014-04-24 07:49:19 -07:00
Shawn Neal ab51a786ff Extract execution_output method from WinRM comm execute 2014-04-23 21:49:28 -07:00
Shawn Neal 4a2a147926 Refactored WinRM test command filter 2014-04-23 21:15:05 -07:00
Shawn Neal f44c795eed Integrated WinRM command filter into communicator
*nix commands are now filtered out instead of being sent to the guest. This means the command_alias PowerShell script is no longer needed.

Moved the PowerShell exit code helper to the WinRM shell and changed it to always return an exit code.
2014-04-23 20:38:16 -07:00
Shawn Neal 1525aa0f78 Added WinRM grep command filter
This is needed because isn't available on Windows and Vagrant guest detection attempts to use grep for some OSs.
2014-04-23 20:37:15 -07:00
Shawn Neal ac81841b01 test command should expand environment variables
'$Env:SystemRoot' does not expand
"$Env:SystemRoot" does expand
2014-04-23 18:26:45 -07:00
Shawn Neal 96ab8f60c5 Added WinRM command filters
These will be used to replace the guest side command_alias script that is sent with every communicator execute call. This avoids some uncessary remote calls to the guest, makes it unit testable, and allows larger PowerShell commands to be invoked.
2014-04-23 17:50:20 -07:00
Mitchell Hashimoto e1c79c4692 commands/global-status: call proper method 2014-04-23 06:21:44 -07:00
Mitchell Hashimoto 5da77dee5c commands/box/remove: add --force flag 2014-04-23 06:16:51 -07:00
Mitchell Hashimoto eae3f3243e Merge pull request #3517 from mitchellh/communicator-support-for-wql
communicator/winrm: Communicator support for wql
2014-04-23 06:02:24 -07:00
Mitchell Hashimoto fbcc6d25b4 Merge pull request #3519 from mitchellh/windows-guest-file-manager
communicators/winrm: Windows guest file manager
2014-04-23 06:01:59 -07:00
Mitchell Hashimoto e985308e9a core: MachineIndex::Entry#valid? method and tests 2014-04-22 17:09:44 -07:00
Shawn Neal 5f4a900d8e Add WinRM file transfer error and english text 2014-04-22 14:54:13 -07:00
Shawn Neal f292232ca8 Added Windows guest file manager for recursive uploads
- Since WinRM uploads are so slow, MD5 content checking is used
2014-04-22 14:42:13 -07:00
Shawn Neal 62f5be49d5 Cleaner DHCP detection for Windows guests 2014-04-22 13:28:51 -07:00
Shawn Neal 728ec28f2d Windows GuestNetwork directly uses the communicator
- Fixed slight Law of Demeter violation
- Make guest access through comm consistent
2014-04-22 11:54:34 -07:00
Shawn Neal 9177bd8a48 Added WQL support to Vagrant communicator execute
- Removed duplication for WQL specific commands
2014-04-22 11:29:22 -07:00
Shawn Neal 929e41aa5c Backfilled unit tests for Windows guest support
- Fixed typo in helper test
- Removed extraneous machine.config prefix from Windows guest config validation
- Added WinRM communicator unit tests
- Added Windows guest capability unit tests
2014-04-22 11:03:37 -07:00
Mitchell Hashimoto a47b85c8c4 synced_folders/rsync: add UserKnownHostsFile to /dev/null [GH-3511] 2014-04-21 20:39:48 -07:00
Mitchell Hashimoto 7cbef9b3d9 providers/docker: doesn't support NFS if b2d [GH-3510] 2014-04-21 20:38:10 -07:00
Mitchell Hashimoto afd3f1ff43 synced_folders/nfs: can say functional is false explicitly 2014-04-21 20:37:14 -07:00
Mitchell Hashimoto ec57a286cd hosts/darwin: use a temp dir since Tempfile is deleted right away 2014-04-21 13:56:43 -07:00
Mitchell Hashimoto db64fbf6ef communicators/winrm: reload shell on reload so we get proper port 2014-04-21 13:56:42 -07:00
Mitchell Hashimoto 7ee9b7cd42 kernel/v2: make sure communicator is a symbol 2014-04-21 13:56:41 -07:00
Mitchell Hashimoto b0b445fcac hosts/darwin: rdp client support by subprocessing `open` 2014-04-21 13:56:40 -07:00
Mitchell Hashimoto a205cf84a0 providers/virtualbox: don't require valid config on destroy [GH-1629] 2014-04-21 13:56:37 -07:00
Mitchell Hashimoto 4372ab034e providers/virtualbox: merge customizations properly 2014-04-21 13:56:32 -07:00
Mitchell Hashimoto 568185c3e9 providers/docker: always copy the host VM Vagrantfile 2014-04-21 13:56:31 -07:00
Mitchell Hashimoto 22d9b0eeb2 guests/linux: unmount uses rmdir instead of rm -rf to avoid catastrophe 2014-04-21 13:56:30 -07:00
Mitchell Hashimoto 2e8f837f9b providers/docker: fix exception typo 2014-04-21 13:56:29 -07:00
Mitchell Hashimoto 89b6336d21 providers/docker: retry sync_folders action 2014-04-21 13:56:28 -07:00
Mitchell Hashimoto e38ae9b5c6 providers/docker: don't guard for image on create, since can come from build 2014-04-21 13:56:27 -07:00
Mitchell Hashimoto 1c3ee6ffa3 providers/docker: rebuild image if it doesn't exist 2014-04-21 13:56:26 -07:00
Mitchell Hashimoto d837086572 providers/docker: get rid of mutex around Docker access, should be safe 2014-04-21 13:56:25 -07:00
Mitchell Hashimoto aa13a43c69 providers/docker: its okay if no image file on destroy 2014-04-21 13:56:23 -07:00
Mitchell Hashimoto 1c7faae1ee provisioners/*: prefix the output 2014-04-21 13:56:19 -07:00
Emilien Kenler b77bd3e6bb Unit test + vault password file existence check 2014-04-21 13:56:16 -07:00
Emilien Kenler dd06dffe85 Ansible Vault support
Add the following options to the Ansible provisioner:
- ask_vault_pass
- vault_password_file
2014-04-21 13:56:15 -07:00
Mitchell Hashimoto bad6537e86 kernel/v2: provider configs do proper merge logic for config 2014-04-21 13:56:14 -07:00
Mitchell Hashimoto 8171471628 providers/docker: make merge logic a bit more sensible 2014-04-21 13:56:13 -07:00
Mitchell Hashimoto 8a76c2bc76 providers/docker: can force a host VM optionally 2014-04-21 13:56:08 -07:00
Mitchell Hashimoto 79793ab130 providers/docker: config validation and specs 2014-04-21 13:56:07 -07:00
Mitchell Hashimoto 0094a58227 providers/docker: when building from Dockerfile, show image ID 2014-04-21 13:56:06 -07:00
Mitchell Hashimoto 052ee624bb providers/docker: forgot a file 2014-04-21 13:56:05 -07:00
Mitchell Hashimoto f78f72920c providers/docker: flatten stack so it runs at one point 2014-04-21 13:56:04 -07:00
Mitchell Hashimoto 067c1ca348 providers/docker: reuse action stacks where possible 2014-04-21 13:56:02 -07:00
Mitchell Hashimoto 67741ad902 providers/docker: fix ordering of removing built images 2014-04-21 13:56:01 -07:00
Mitchell Hashimoto e50eb6c7a9 providers/docker: default host VM doesn't sync folder 2014-04-21 13:56:00 -07:00
Mitchell Hashimoto 53017bccc8 command/rsync-auto: work with provisioner synced folders 2014-04-21 13:55:57 -07:00
Mitchell Hashimoto 16ae728b5f providers/docker: remove built image on reload and destroy 2014-04-21 13:55:55 -07:00
Mitchell Hashimoto 81df70eee0 providers/docker: support building Dockerfiles 2014-04-21 13:55:54 -07:00
Mitchell Hashimoto 3ba0ca3562 providers/docker: fix typo in translation 2014-04-21 13:55:52 -07:00
Mitchell Hashimoto 61388186e9 providers/docker: can set custom container name 2014-04-21 13:55:51 -07:00
Mitchell Hashimoto 58ddc66b9c providers/docker: can specify links 2014-04-21 13:55:50 -07:00
Mitchell Hashimoto 71d615212d providers/docker: can set environmental variables 2014-04-21 13:55:49 -07:00
Mitchell Hashimoto 0a3346c918 providers/docker: warning if synced folders change 2014-04-21 13:55:48 -07:00
Mitchell Hashimoto d1b3165545 providers/docker: cleaner action stacks 2014-04-21 13:55:47 -07:00
Mitchell Hashimoto 35d9256137 providers/docker: only provision if ssh (command) 2014-04-21 13:55:46 -07:00
Mitchell Hashimoto 81818f36fc providers/docker: graceful halt only if SSH is available 2014-04-21 13:55:45 -07:00
Mitchell Hashimoto 4a59c5c522 providers/docker: optimizing the action stacks... 2014-04-21 13:55:44 -07:00
Mitchell Hashimoto c0f5095783 providers/docker: wait for running state, error if not 2014-04-21 13:55:42 -07:00
Mitchell Hashimoto 09cc823065 providers/docker: warning with host VM about forwarded ports 2014-04-21 13:55:41 -07:00
Mitchell Hashimoto 19c9973a0d guests/linux: set a timeout on nc 2014-04-21 13:55:40 -07:00
Mitchell Hashimoto e578e91e3a providers/docker: implement port checker for remote machine 2014-04-21 13:55:39 -07:00
Mitchell Hashimoto 4dabfc1aff providers/docker: clean up forwarded port handling 2014-04-21 13:55:37 -07:00
Mitchell Hashimoto 6ea6ad3e08 providers/docker: only correct port collisions if not host VM 2014-04-21 13:55:36 -07:00
Mitchell Hashimoto 58a043e2aa providers/docker: upload the keys we need for SSH 2014-04-21 13:55:35 -07:00
Mitchell Hashimoto 447f407b0b providers/docker: use a mutex for intra-process lock 2014-04-21 13:55:31 -07:00
Mitchell Hashimoto 3edfe6deaf providers/docker: remove synced folders after docker rm 2014-04-21 13:55:28 -07:00
Mitchell Hashimoto cd38f891da providers/docker: disable synced folders on destroy 2014-04-21 13:55:27 -07:00
Mitchell Hashimoto 704ff98200 providers/docker: only sync folders if they're not already there 2014-04-21 13:55:26 -07:00
Mitchell Hashimoto 10e51eb141 providers/docker: initial sync folders working through proxy VM 2014-04-21 13:55:20 -07:00
Mitchell Hashimoto c1f14320bd providers/docker: process-level lock on host machine up 2014-04-21 13:55:13 -07:00
Mitchell Hashimoto afb61b1466 providers/virtualbox: synced folder supports the "disable" method 2014-04-21 13:55:12 -07:00
Mitchell Hashimoto e119a5714a core: add "disable" method for synced folders, deprecate "prepare" 2014-04-21 13:55:09 -07:00
Mitchell Hashimoto c3e6c794cd synced_folders/nfs: acquire process-level lock for export 2014-04-21 13:55:07 -07:00
Mitchell Hashimoto 7da9ad0fa6 commands/destroy: change exit codes [GH-811] 2014-04-21 13:55:01 -07:00
Mitchell Hashimoto a2a822c6e6 providers/docker: SSH action re-uses the communicator helpers 2014-04-21 13:54:58 -07:00
Mitchell Hashimoto 4477545d3f providers/docker: execute the proxied SSH in a shell 2014-04-21 13:54:57 -07:00
Mitchell Hashimoto e947960c09 providers/docker: use a custom communicator to go through host VM 2014-04-21 13:54:56 -07:00
Mitchell Hashimoto bdade7d5a6 providers/docker: notify when proxying SSH 2014-04-21 13:54:55 -07:00
Mitchell Hashimoto e714720052 providers/docker: `vagrant ssh` proxies through the host VM 2014-04-21 13:54:54 -07:00
Mitchell Hashimoto 6721d8e964 communicators/ssh: just use Ruby 2.0 features 2014-04-21 13:54:52 -07:00
Mitchell Hashimoto c220bfc27d providers/docker: TODO for me 2014-04-21 13:54:51 -07:00
Mitchell Hashimoto 56f9fdac21 commands/docker-logs: exit status 1 if no logs were retrieved 2014-04-21 13:54:49 -07:00
Mitchell Hashimoto eab553ad55 providers/docker: better comments 2014-04-21 13:54:48 -07:00
Mitchell Hashimoto cb95e8aaee commands/docker-logs: parallelize for multiple containers 2014-04-21 13:54:47 -07:00
Mitchell Hashimoto da0db72054 providers/docker: docker-attach => docker-logs 2014-04-21 13:54:45 -07:00
Mitchell Hashimoto 54de2e3c6f providers/docker: docker-attach command for following output 2014-04-21 13:54:44 -07:00
Mitchell Hashimoto b655b6d910 providers/docker: remove TODO 2014-04-21 13:54:41 -07:00
Mitchell Hashimoto 144c874b5a providers/docker: process-level lock on copying default Vagrantfile 2014-04-21 13:54:40 -07:00
Mitchell Hashimoto bed34a730b provisioners/docker: fix module name for new docker provider 2014-04-21 13:54:35 -07:00
Mitchell Hashimoto 8c7ab333a0 Squash the f-docker-hostmachine branch.
Initial work

commands/up: make sure all names to with_target_vms are strings

providers/docker: create a docker host VM if needed

providers/docker: executor abstraction for driver to eventually support remote

providers/docker: vagrant executor

providers/docker: support creating the machine

providers/docker: status works if host VM is gone

providers/docker: use start fence to get real docker output

core: Call preserves stack ordering

core: support Message post option

providers/docker: Guard some features with HasSSH checks

providers/docker: much better messaging around create/destroy

providers/docker: output the container ID on create

providers/docker: copy the hostmachine Vagrantfile to the data dir

providers/docker: should make host machine before any up action

providers/docker: HandleBox before the host machine

providers/virtualbox: functional_vboxsf to disable vboxsf

providers/virtualbox: synced folder usable method should take 2 args

providers/docker: default machine name to :default
2014-04-21 13:54:33 -07:00
Mitchell Hashimoto 2b07dec059 core: Use the MachineIndex#vagrant_env method 2014-04-21 13:54:31 -07:00
Mitchell Hashimoto 09ff31e3a3 commands/global-status: add --prune flag 2014-04-21 13:54:29 -07:00
Mitchell Hashimoto 7c8053cb2b hosts/windows: don't remove the rdp file, race condition 2014-04-21 13:54:21 -07:00
Mitchell Hashimoto 5b5f10e175 commands/rdp: config 2014-04-21 13:54:20 -07:00
Mitchell Hashimoto 3d0a2959cd commands/rdp: nicer output 2014-04-21 13:54:19 -07:00
Mitchell Hashimoto 8698ebeff6 hosts/windows: use the port when connecting 2014-04-21 13:54:18 -07:00
Mitchell Hashimoto 5b960efcb1 commands/rdp: no need fo rthe guest cap 2014-04-21 13:54:17 -07:00
Mitchell Hashimoto 617cf630b1 commands/rdp: error if RDP info can't be detected 2014-04-21 13:54:16 -07:00
Mitchell Hashimoto 76a7c63f8b guests/windows: detect the port for RDP 2014-04-21 13:54:15 -07:00
Mitchell Hashimoto 7705ad76c6 guests/windows: use the public_address cap 2014-04-21 13:54:14 -07:00
Mitchell Hashimoto 993256643d guests/windows: rdp_info cap 2014-04-21 13:54:13 -07:00
Mitchell Hashimoto 0fa07637f9 commands/rdp: execute propre capabilities 2014-04-21 13:54:11 -07:00
Mitchell Hashimoto 746b568176 hosts/windows: rdp_client cap 2014-04-21 13:54:10 -07:00
Mitchell Hashimoto de7b4bbdc1 commands/rdp: basic skeleton 2014-04-21 13:54:09 -07:00
Mitchell Hashimoto 2929f7a853 provisoiners/chef: windows command builder 2014-04-21 13:54:08 -07:00
Mitchell Hashimoto 7022b1c29d provisioners/chef: command builder for Linux 2014-04-21 13:54:06 -07:00
Mitchell Hashimoto 909cda4bd1 provisioners/chef: reinit net shares on Windows guests 2014-04-21 13:54:05 -07:00
Mitchell Hashimoto 427d49402d provisioners/cfengine: fix typo 2014-04-21 13:54:04 -07:00
Mitchell Hashimoto 72030d2180 Note provisioners that don't work on Windows guests 2014-04-21 13:54:02 -07:00
Mitchell Hashimoto bd51c16700 provisioners/puppet: execute properly with WinRM 2014-04-21 13:54:00 -07:00
Mitchell Hashimoto 1a0cb9b4c1 privisioners/puppet: wait for reboot on Windows 2014-04-21 13:53:59 -07:00
Mitchell Hashimoto bec2cbbf4d provisioners/shell: check for winrm should be on machine config 2014-04-21 13:53:56 -07:00
Mitchell Hashimoto 4145aa6bcd privisioners/shell: wait for reboot if we can 2014-04-21 13:53:54 -07:00
Mitchell Hashimoto 4fc6fbeef6 privisioners/shell: fix syntax error 2014-04-21 13:53:53 -07:00
Mitchell Hashimoto 286fd2f2f8 provisioners/shell: friendly output if winrm shell provisioning 2014-04-21 13:53:52 -07:00
Mitchell Hashimoto bddc7928ad provisioner/shell: proper extension on temporary file 2014-04-21 13:53:50 -07:00
Mitchell Hashimoto 89671974cf provisioners/shell: handle comm output in a uniform way 2014-04-21 13:53:49 -07:00
Mitchell Hashimoto cde5d0bafb privisioners/shell: execute windows script 2014-04-21 13:53:48 -07:00
Mitchell Hashimoto aca8c4f8f3 provisioners/shelL: don't replace windows lineendings for WinRM 2014-04-21 13:53:47 -07:00
Mitchell Hashimoto 15fe061004 provisioners/shell: cause provision_winrm if winrm 2014-04-21 13:53:46 -07:00
Mitchell Hashimoto abd4185565 guests/freebsd: fix network name for vtnet 2014-04-21 13:53:45 -07:00
Mitchell Hashimoto 2057d513cb Update CHANGELOG 2014-04-21 13:53:44 -07:00
Maximilian Fischer a7b70dcf70 OpenBSD support for virtio interfaces
- When using KVM as provider you were not able to configure network
  interfaces that use virtio, because the interface name was strictly
  set to 'em'
2014-04-21 13:53:42 -07:00
Mitchell Hashimoto 96971194bc update CHANGELOG 2014-04-21 13:53:41 -07:00
Doug Stevenson cc343d1a7d Add config for FreeBSD guest plugin. Allow device to be configurable 2014-04-21 13:53:39 -07:00
Mitchell Hashimoto ba1676b232 providers/hyperv: fix tests and bug with usable? 2014-04-21 13:53:36 -07:00
Mitchell Hashimoto 1c29c39f1b core: generalize the autostart stuff so we don't have a bunch of specials 2014-04-21 13:53:35 -07:00
Mitchell Hashimoto d7a009f447 style 2014-04-21 13:53:34 -07:00
Mitchell Hashimoto 740652aef9 providers/hyperv: usable test 2014-04-21 13:53:09 -07:00
Mitchell Hashimoto 967f7bce1a providers/virtualbox: usability test 2014-04-21 13:53:08 -07:00
Mitchell Hashimoto f2bd6988b6 providers/docker: boxes are optional 2014-04-21 13:53:06 -07:00
Mitchell Hashimoto ab2cae2379 providers/docker: synced folder usable? raises error, tests
/cc @fgrehm
2014-04-21 13:53:05 -07:00
Mitchell Hashimoto 2e13feb130 providers/docker: Clean up config and make a spec 2014-04-21 13:53:04 -07:00
Mitchell Hashimoto 61ffa53134 kernel/v2: boxes can be optional if a provider says so
/cc @fgrehm - For the DOcker provider, we can now make boxes optional. :)
No more dummy boxes!
2014-04-21 13:53:03 -07:00
Mitchell Hashimoto 316aaa69fe kernel/v2: box setting should be new-style 2014-04-21 13:53:01 -07:00
Mitchell Hashimoto ac5a0cf326 commands/ssh-config: work without target into multi-machine env [GH-2844] 2014-04-21 13:52:59 -07:00
Mitchell Hashimoto 485422640e core: delete the preserve_order option so it doesn't invalidate 2014-04-21 13:52:31 -07:00
Mitchell Hashimoto aad8e7f80d core: provision "once" or "always" [GH-2421] 2014-04-21 13:52:30 -07:00
Mitchell Hashimoto f6fb9016a1 core: can specify a "post_up_message" [GH-1968] 2014-04-21 13:52:28 -07:00