Commit Graph

3800 Commits

Author SHA1 Message Date
Brian Cain 83310f8a56 Merge pull request #8955 from jehiah/virtualbox52_8955
Virtualbox 5.2 support
2017-10-03 13:25:39 -07:00
Ben Hines e133547932 Properly call winssh communicator on windows via powershell, and fix syntax for powershell via puppet. 2017-09-29 20:53:09 -07:00
Ben Hines ea518f6c78 test() defaults to powershell for winssh, no need to pass it 2017-09-29 19:30:07 -07:00
Ben Hines 6b4584efb6 Use the 'powershell' shell when running powershell commands. Allows winssh communicator to function 2017-09-29 19:17:49 -07:00
Brian Cain 87ee4f5662 Merge pull request #8995 from elatt/fix_synced_folders_spaces
Allow synced folders to contain spaces in the guest path
2017-09-29 15:19:39 -07:00
Erik Lattimore 28a92850ab Allow synced folders to contain spaces in the guest path
It should be valid to allow paths with spaces for the synced folder
guest path but since the guest path is used to generate the ID (if one
isn't provided), this will err out in VirtualBox because it doesn't
allow spaces for the --name argument. We should simply convert ' ' to
'_' as we do with other special characters.
2017-09-29 17:24:12 -04:00
Björn Brala 0f743d0731 Auto stop action is configured through auto start action. 2017-09-26 16:03:35 +02:00
Bryce Shurts 0eaf691ea0 Adding check for APIPA in winrm helper to fix #8996 2017-09-25 16:31:37 -05:00
Benjamin Schiborr c30c00508c provisioners/salt: #8991: Fixes timeout issue in salt bootstrapping for windows
Fixes #8991.

1. When remote executing scripts one should always call powershell with
1a. "-NonInteractive", in order to prevent interactive prompts from leading to an endless waiting time for the script to return
1b. "-NoProfile", in order to prevent the loading of unknown custom profiles before execution of the script which could have unintended side effects
2. During my tests I constantly ran into 408 timeouts when downloading the salt binaries. I've prevented that by adding a simple retry mechanism and an error exit in case of multiple failures. Without this change the bootstrap script never returned (and neither did vagrant up)
2017-09-22 18:08:30 -07:00
Mikhail Bulash 508d94d466 provisioners/shell: Use ui.detail for displaying output
Output format of ui.info method (bold text) makes reading long script outputs really heavy on the eyes. ui.detail is a better match for this type of output.
2017-09-18 17:55:07 +03:00
Jehiah Czebotar 7d73af5637
Virtualbox 5.2 support 2017-09-14 15:07:11 -04:00
Jonathan LaBroad 6f53c3991c Merge remote-tracking branch 'upstream/master' 2017-09-11 09:15:22 -04:00
Chris Roberts 2451c859e8 Merge pull request #8746 from mastersin/alt
Add ALT Linux platforms guest detection and network configuration support (#8745)
2017-09-06 17:49:38 -07:00
Chris Roberts d7b64dce80 Merge pull request #8938 from chrisroberts/update/host-systemd
Update linux host NFS capability
2017-09-06 16:57:27 -07:00
Brian Cain b2f34a6ea9 Merge pull request #8951 from briancain/RETRYABLE-COMMANDS
Improving resilience of some VirtualBox commands fixup
2017-09-06 14:51:02 -07:00
Chris Roberts 34addec796 Merge pull request #8913 from mitchellh/gildegoma/6570-ansible-compatibility-mode
Ansible: Add "compatibility_mode" and "*become*" common options; Move "version" to common options
2017-09-06 13:18:08 -07:00
Brian Cain 4e7bd96bb0 Merge pull request #8950 from terceiro/fix-permissions
plugins/guests/kali: fix file permissions
2017-09-06 13:04:29 -07:00
Gilles Cornu ac75e409a3
provisioners/ansible(both): Quote host_vars if needed
This patch is based on @subimage's inputs in the related GitHub issue.
Thanks again!

Fix #8597
2017-09-06 21:22:41 +02:00
Brian Cain 9b872c9e7e Cleanup virtualbox retryable commands
Reverting the changes done in 7d2f7dab97
because they don't work and or update vagrant to invoke running the
vbox cli tool for every single forwarded port instead of forwarding them
all in one command.
2017-09-06 11:14:11 -07:00
Samuel Clark 2e775e8101 8468 - make more virtualbox commands retryable
Issue: https://github.com/mitchellh/vagrant/issues/8468

A lot of vboxmanage commands are flakey and frequently cause
bringing multiple machines up at once to fail, especially when
the host system is under heavy load. Most commands are also safe
to retry and just result in a no-op, so we can simply add
'retryable' to a lot of existing calls. For the others we need to
do a little bit of cleanup or reevaluate the parameters before
trying again.
2017-09-06 11:14:11 -07:00
nico.vanelslande 9aecd5e1a4 Improved resilience of the VirtualBox driver delete_unused_host_only_networks function by
ignoring VMs that may have been deleted between the calls to
'vboxmanage list vms' and 'vboxmanage showvminfo'
2017-09-06 11:13:14 -07:00
nico.vanelslande 56c8b9269a Improved resilience of the VirtualBox driver read_used_ports function by
ignoring VMs that may have been deleted between the calls to
'vboxmanage list vms' and 'vboxmanage showvminfo'
2017-09-06 11:13:14 -07:00
Chris Roberts fcd1aee9bb Update linux host NFS capability
Add support for systemd detection and using correct method
for starting/checking host nfs service.
2017-09-06 09:54:06 -07:00
Brian Cain f1eddace18 Merge pull request #8945 from briancain/4666/master/dupe-nfs-export-linux
Remove duplicate export folders before writing /etc/exports
2017-09-06 08:34:46 -07:00
Antonio Terceiro acda71edd9 plugins/guests/kali: fix file permissions
Those Ruby files are not standalone scripts, so there is no point in
having them being executable.
2017-09-06 12:21:23 -03:00
Gilles Cornu a0a09c6095
minor: Fix a typo in a code comment
[ci skip]
2017-09-06 17:12:51 +02:00
Gilles Cornu 4dc3e59b08
provisioners/ansible(both): Review of PR #8913
- Keep the Programming Errors with corresponding Exception class and
  en.yml message template. Fix the alphabetical order in errors.rb by
  the way.
- Fix English wording in the documentation and en.yml messages
- Use StandardError for unknown error rescuing.

Thanks @chrisroberts!
2017-09-06 17:12:50 +02:00
Gilles Cornu 6bc0c85e90
provisioners/ansible_local: Optimize SSH commands
With this change, the same remote command is used to:
- verify that ansible is available
- gather the ansible version details
2017-09-06 17:12:46 +02:00
Gilles Cornu 9996ed6259
provisioners/ansible_local: Fix an obsolete comment
[ci skip]
2017-09-06 17:12:44 +02:00
Gilles Cornu dc3b6341e2
provisioners/ansible: Check compatibility conflicts
Vagrant will verify that the current Ansible version does support the
requested compatibility mode (only applicable if not "auto", of course).

As mentioned in the documentation, there is no sanity checks between
`version` option and `compatibility_mode` option.

With this change, the host-based provisioner is also improved to
execute only once the "ansible" command (and store the gathered
information for multiple usages like version requirement and
compatibility checks). On the other hand, the guest-based provisioner
can still potentially execute "ansible" twice (once in the
AnsibleInstalled cap, and via "gather_ansible_version" function via
Base::set_compatibility_mode).
2017-09-06 17:12:40 +02:00
Gilles Cornu 36616fb208
provisioners/ansible: Add @control_machine instance variable
This minor addition will be used for upcoming shared code in base
superclass and avoid "guest"/"host" repetitions.
2017-09-06 17:12:39 +02:00
Gilles Cornu 8c0df3d046
provisioners/ansible: Move `version` to common options
Before this change, only the ansible_local provisioner supported this
option (for ansible version requirement, and pip installation). Now, the
ansible host-based provisioner can also require a exact ansible version.

Resolve #8914

Note: this has been added as part of #6570 resolution, since the
introduction of the `compatibility_mode` auto-detection made both
provisioners made capable to detect ansible version.

Pending: optimize the code to avoid duplicated executions of "ansible
--version" command.
2017-09-06 17:12:35 +02:00
Gilles Cornu a327e34861
provisioners/ansible: Validate compatibility_mode
- Use `'auto'` instead of `nil` for the auto-detection mode
- Add strict validation and related error message
2017-09-06 17:12:32 +02:00
Gilles Cornu 8834afbd8e
provisioners/ansible(both): Add compatibility mode
With this change, it is now possible to get rid of many deprecation
messages successively introduced in Ansible 1.9, and 2.0. More
interesting, the generated inventory will contain the recommended
variable names (e.g. `ansible_host` instead of `ansible_ssh_host`)
when the compatibility mode is set to '2.0'.

Details:

- Add `compatibility_mode` option to control the Ansible parameters
  format to be used. The value corresponds to the minimal version
  supported. For the moment, possible values are '1.8' (corresponding to
  Vagrant's former behaviour) or '2.0'.
  Note that a dynamic inventory generated in compatibility mode '2.0'
  is not supported by Ansible 1.x. On the other hand, Ansible 2.x so far
  supports inventory format generated by the compatibility mode '1.8'.

- Add compatibility mode auto-detection, based on the available Ansible
  version. This is the default behaviour in order to bring a maximum of
  user friendliness. The drawback of this approach is to let potential
  compatibility breaking risks, for `ansible` provisioner setups that
  already integrate Ansible 2.x **AND** rely on the existence of
  the generated `_ssh` variable names. Thanks to the vagrant warnings
  (and its release notes), I argue that it is worth to offer
  auto-detection by default, which offers a sweet transition to most
  users.

- Add `become`, `become_user` and `ask_become_pass` options and their
  backwards compatible aliases. The legacy options are now deprecated.

Note that we intentionally didn't provide a '1.9' compatibility mode,
as it would add extra-complexity for practically no added-value.
To my knowledge, the Ansible 2.x series haven't introduced yet any major
changes or deprecations that would motivate to introduce a higher
version compatibility mode (to be confirmed/verified).

Resolve GH-6570

Still Pending:

- Optimization: Reduce the number of `ansible` command executions.
  Currently two exec calls will be performed when the compatibility
  mode auto-detection is enabled (i.e. by default). We could make the
  provisioner a little bit smarter to only execute `ansible` only once
  in any situation (by combining "presence" and "version" checks).

- User-friendliness: Add better validator on `compatibility_mode`
  option, and shows a warning or an error instead of the silent
  fallback on the auto-detection modus.

- Test coverage: All the added behaviours are not fully covered yet.
2017-09-06 17:12:22 +02:00
Gilles Cornu e09848ca59
provisioners/ansible_local: Shellescape extra-vars
Fix #7735

Further work for proper shell-escaping of other ansible-playbook and
ansible-galaxy command line arguments will be addressed via #8949.
2017-09-06 16:30:40 +02:00
Brian Cain f0f60a1075 (#4666) Remove duplicate export folders before writing /etc/exports
Prior to this commit, if you set up multiple folders to export with NFS
on linux with the exact same hostpath, the template used to write
/etc/exports would end up placing the same path with the same IP in
/etc/exports and cause an error preventing the folders from being
properly mounted. This commit fixes that by first looking at which
folders are being exported and if there are any duplicates. If so,
remove the duplicates and only export 1 hostpath folder. If these
duplicate folders have differing nfs linux options, an exception must be
thrown because we cannot assume which options the user intended to
export with.
2017-09-05 16:05:14 -07:00
Brian Cain 089117bc0f Merge pull request #8939 from briancain/8933/master/source-path-file-prov
Align file provisioner functionality on all platforms
2017-09-05 15:54:52 -07:00
Gilles Cornu b741ff7999
provisoners/ansible(both): Accept 'all:vars'
The patterns "all" is a special keyword that target all hosts in the
inventory. Therefore it makes sense to accept "all:vars" as a group
variable name. Note that "*:vars" pattern is not valid in an Ansible
inventory.
See http://docs.ansible.com/ansible/latest/intro_patterns.html#patterns

Fix #7730
2017-09-03 18:41:06 +02:00
Brian Cain a9564b2137 (#8933) Align file provisioner functionality on all platforms
This commit aligns how the file provisioner should work on all host
machines. It ensures that a `/.` is only applied if the user intended
to upload a folder to a destination under a different name. It ensures
that if uploading to a windows guest with a different destination folder
name, it does not nest the source folder under that name so that it
works the same as it does on linux platforms. It also updates the
behavior of the winrm upload communicator by allowing an array of paths
to be uploaded instead of a single file or folder to allow for this new
functionality for windows guests.
2017-08-31 15:57:53 -07:00
Justin Campbell f8fa7e3b29 command/login: Fix typo in server_error 2017-08-30 10:39:58 -04:00
Justin Campbell 3ddc98c2e4 command/login: Support 2FA login on Vagrant Cloud 2017-08-30 10:39:58 -04:00
Justin Campbell 0e091fee16 command/login: Store user/pass on client
Will allow us to prompt for other info without forgetting this data.
2017-08-30 10:39:58 -04:00
Brian Cain 432cb8d915 (#7826) Add salt_arg option for passing flags to salt tool
This commit introduces the salt_arg option that allows a user to pass
additional command line flags to the `salt` tool when provisioning with
a master setup.

It also adds additional config validation to ensure that both
`salt_args` and `salt_call_args` is an array.
2017-08-29 14:11:06 -07:00
Brian Cain 9a29d7be6b (#7836) Introduce salt_call_args option for salt provisioner
This config option for the salt provisioner allows you to pass
additional arguments to the salt-call executable.
2017-08-29 11:17:29 -07:00
Jonathan LaBroad 8e2c66d8a8 Reverting whitespace change 2017-08-29 13:23:53 -04:00
Jonathan LaBroad 8e3831b810 Update default minion version to latest (Python 2)
Perform check to determine to include python version or not
2017-08-29 13:13:24 -04:00
Jonathan LaBroad 384848e92d Adding python_version parameter for Windows minions
Ignoring non-Windows Salt parameters
Get the correct minion file for ver >= 2017.x.x
2017-08-29 12:38:29 -04:00
Dimitrios Kouzis-Loukas 51716c5ef0 fix for issue 8608 2017-08-27 23:56:47 -04:00
Peter Parkkali 8e4f0444e8 Hide duplicate errors in Saltstack provisioner when verbose mode is on 2017-08-26 01:38:06 +02:00
Brian Cain dbc23fccab Merge pull request #8915 from briancain/6656/master/format-windows-paths-for-ssh-config
Format windows paths for ssh_config command
2017-08-25 16:20:32 -07:00
Brian Cain b45ee4f455 (#6656) Format windows paths for ssh_config command
Prior to this commit, if the ssh-config command was invoked within
cygwin or msys2, it would show a regular windows style path for private
keys rather than a path that could be used within msys2 or cygwin. This
commit updates that behavior by converting all of the private key paths
to the proper msys2 or cygwin path if the platform is windows and the
command was invoked from one of those two shells.
2017-08-25 13:17:19 -07:00
Brian Cain 0ac26be4ef (#8917) Fix shell_expand_guest_path capability
Prior to this commit, when the guest capability attempted to expand a
path with spaces it would quote the path passed in. However if the path
also had a relative path those quotes would end up making `printf`
ignore it and not properly expand the path fully. This commit updates
that to first escape the quotes of a path and then pass in the new path
to be expanded.
2017-08-25 10:02:36 -07:00
Chris Roberts 868856b71a Merge pull request #8911 from chrisroberts/fix/compose-hostvm
Error when compose and force_host_vm are enabled together
2017-08-22 12:48:08 -07:00
Brian Cain 9f093f71d9 Merge pull request #8910 from briancain/8479/master/disable-prov-install-global-id-up
Disable install providers when using global id on vagrant up
2017-08-22 12:42:09 -07:00
Chris Roberts f660c19084 Error when compose and force_host_vm are enabled together 2017-08-22 11:36:26 -07:00
Brian Cain d9e088ba5d (#8479) Disable install providers when using global id on vagrant up
Prior to this commit, when using a global id to bring up a vagrant vm,
vagrant would fail during the "install provider" step due to the fact
that the global vagrant machine was not configured for the local vagrant
environment. Since this global vm exists elsewhere, we disable the
install provider step so that vagrant can just bring up the global
vagrant machine.
2017-08-22 10:08:05 -07:00
Brian Cain ea59cfdb92 Merge pull request #8895 from briancain/8697/master/add-ssh-extra-opts
Introduce extra_args setting for ssh configs
2017-08-21 16:26:52 -07:00
Chris Roberts 93f6451261 Retain winssh_ method prefix on auth key helper 2017-08-21 14:48:52 -07:00
Rui Lopes 7fac854cf3 winssh communicator: simplify the authorized_keys file modification 2017-08-21 14:42:18 -07:00
Rui Lopes 4ab0dc19b1 winssh communicator: retain the authorized_keys file acl permissions 2017-08-21 14:42:18 -07:00
Rui Lopes aeac480683 winssh communicator: fix public key insertion 2017-08-21 14:42:18 -07:00
Chris Roberts f32f85595e Merge pull request #8840 from chrisroberts/rsync/ipv6
Format host address for rsync when IPv6
2017-08-21 13:49:58 -07:00
Chris Roberts 1c763cf5e6 Expand relative volume paths for compose on current cwd 2017-08-21 13:26:19 -07:00
Chris Roberts 3f8cbb121a Merge pull request #8837 from chrisroberts/docker-compose/links
Split compose links if string values
2017-08-21 13:21:09 -07:00
Chris Roberts 18d3e5d286 Merge pull request #8831 from chrisroberts/hyperv/ipv6
Update guest IP address discovery for hyper-v guests.
2017-08-21 13:15:06 -07:00
Brian Cain ffec0ff8d9 (#8697) Introduce extra_args setting for ssh configs
Prior to this commit, there was no way to add additional ssh arguments
within a Vagrantfile for a given vagrant machine. This commit introduces
a new option extra_args that allows users to pass in a single argument
or an array of flags that will be added onto the ssh command.
2017-08-17 09:02:20 -07:00
Brian Cain 4bd95cbfe2 (#8864) Improve `vagrant validate` command
Prior to this commit, the `vagrant validate` command would only validate
the first machine in a vagrant file. This commit improves that by
validating all known machines in the environment. If one is not found,
it will properly throw an exception instead of a stacktrace.
2017-08-15 13:53:45 -07:00
Brian Cain c0b54f74ea Merge pull request #8875 from briancain/8716/master/dup-string-if-frozen-for-line-endings
Dup string if frozen for line endings
2017-08-15 10:04:34 -07:00
Brian Cain 0d8f58e5da Merge pull request #8880 from briancain/8603/master/fix-scp-usage-in-file-prov
Ensure remote folder exists prior to scp in file provisioner
2017-08-15 10:04:14 -07:00
Brian Cain 2b8f7f67ea Add unit tests for shell_expand_guest_path function 2017-08-15 09:33:29 -07:00
Brian Cain 01528689fd (#8716) Dup string if frozen for line endings
Prior to this commit, if a user passed in a script that was frozen,
the shell provisioner would fail to modify the script to replace line
endings for windows because the string was immutable. This commit fixes
that by dup'ing the string so that it can have its line endings replaced
2017-08-15 08:38:30 -07:00
Brian Cain 61c501cc65 Ensure paths with spaces are preserved
Prior to this commit, if a user set the `destination` path to include a
space, the `shell_expand_guest_path` function would remove that space
and return a partial path. This commit updates that to quote the path to
be expanded to preserve the entire path.
2017-08-14 15:34:10 -07:00
Brian Cain 335aa35ff4 Merge pull request #8871 from briancain/8719/master/add-force-flag-for-update
Add force flag for box upgrade command
2017-08-14 08:49:46 -07:00
Brian Cain 40eaef08b7 (#8603) Ensure remote folder exists prior to scp in file provisioner
Prior to this commit, if a file provisioner block was ran twice with a
folder on a remote host, due to how scp works, it would first copy over
that folder, and then on the second action it would copy an identical
folder nested within the first one. While this is 'intended' behavior
with scp, it is unexpected behavior for the file provisioner. This
commit updates the file provisioner to first ensure that the directory
to be copied exists on the remote host prior to copying, and then the
destination dir has been changed to the directory that the destination
will be copied to, rather than the exact directly that includes the
folder from the host to prevent the nested folder behavior.
2017-08-11 11:49:39 -07:00
Justin Campbell 03ebd8b714 command/login: Add hostname to default token desc
Uses `Socket.gethostname` to add the current hostname to the default
description.
2017-08-10 17:21:20 -04:00
Justin Campbell 92578aed4b command/login: Add description to created token
This adds a prompt for a token description, which is now supported in
Vagrant Cloud. Pressing enter on the prompt uses the default description
of `"Vagrant login"`.

    $ vagrant login
    In a moment we will ask for your username and password to HashiCorp's
    Vagrant Cloud. After authenticating, we will store an access token locally on
    disk. Your login details will be transmitted over a secure connection, and
    are never stored on disk locally.

    If you do not have an Vagrant Cloud account, sign up at
    https://www.vagrantcloud.com

    Vagrant Cloud Username: justincampbell
    Password (will be hidden):
    Token description (Defaults to "Vagrant login"):
    You are now logged in.
    $

Which created a token with the default description of "Vagrant login":

![](http://c.justincampbell.me/2V0p0T0U0d0O/Screen%20Shot%202017-08-10%20at%205.08.21%20PM.png)

Entering a description:

    Token description (Defaults to "Vagrant login"): Justin's MacBook Pro

![](http://c.justincampbell.me/2m1N0d1M3k3P/Screen%20Shot%202017-08-10%20at%205.09.39%20PM.png)
2017-08-10 17:12:38 -04:00
Taliesin Sisson 3ab64ab7e4 Handle Chef provisioner requests to reboot. A request to reboot is not a convergence failure, so don't treat it like a convergence failure.
Wait for the machine to reboot before trying to continue the provisioning.
2017-08-10 11:39:41 +01:00
Taliesin Sisson 820d80852c If this is called during a shutdown then exception code 1115 is throw. 2017-08-10 11:14:52 +01:00
Brian Cain 324a08bd75 (#8719) Add force flag for box upgrade command
Prior to this commit, if a state was reached where the action_box_add
command needed a force flag, it would fail requesting the user to
provide that flag to override adding a new box. However that flag did
not exist on the box update command, and could not be passed onto the
action_box_add action. This commit updates that to include a force flag,
and if used, pass that value onto the action_box_add action.
2017-08-09 16:21:13 -07:00
Brian Cain 7a7506cd00 (#8789) Remove curl pipe bash install for salt provisioner
Prior to this commit, because of how the bootstrap salt shell file
worked, if github could not be resolved, the installer script would fail
silently with an exit code 0 because `sh` would evalute without any
errors and the curl exit code would be ignored. This commit splits out
the installer to first attempt to save the bash installer, and if it
exists, execute it.
2017-08-09 10:23:13 -07:00
Brian Cain 623b117208 Merge pull request #8682 from Telekom-PD/omnibus-url
Add config option omnibus_url for chef provisioners
2017-08-03 09:19:13 -07:00
Artem Sidorenko 875c2edc62 Add config option omnibus_url for chef provisioners
This option is useful for internal setups, where own customized
omnibus installation script is used (e.g. to get chef from a mirror)
2017-08-03 10:06:27 +02:00
Brian Cain a2d39742a7 Merge pull request #8775 from lucky-sideburn/master
Added exception if chef.node_path is defined on Vagrantfile but the directory does not exist locally
2017-08-01 13:22:23 -07:00
Eugenio Marzo 7e436c6971 fixed warnings about missing folders for Chef Solo and Zero 2017-08-01 21:37:11 +02:00
Chris Roberts 139a65e555 Format host address for rsync when IPv6 2017-07-31 15:44:37 -07:00
Chris Roberts 3b4901a5b5 Split compose links if string values 2017-07-31 14:23:50 -07:00
Chris Roberts 38fed54697 Update guest IP address discovery for hyper-v guests.
Powershell helper script now returns error when guest IP address
cannot be discovered. When reading addresses from a network
device both IPv4 and IPv6 are stored and the IPv4 address has
precedence on returned address.
2017-07-28 10:18:26 -07:00
Max Khon d87dd018b0 nfs_udp is false by default if using NFS v4. 2017-07-27 14:00:53 +06:00
Chris Roberts 4bc8cc7563 Filter any machine_ip when preparing the NFS settings
When preparing the NFS settings on VirtualBox the guest IP addresses
are pulled from VirtualBox directly and any static addresses are
pulled as well. This can lead to aquiring a host IP and machine IP
but results in a failure of NFS mount because the IPs are not on
the same network. This filters the machine IP result to validate
it is within the host adapter IP range.
2017-07-24 14:02:15 -07:00
Eugenio Marzo c9b65bd129 produce error when node_path is defined but the directory does not exist on disk locally 2017-07-22 11:05:34 +02:00
Eugenio Marzo 94a94648dd change requested after a PR review 2017-07-22 07:58:38 +02:00
Brian Cain 5ee3b0c3b9 Merge pull request #8760 from marblenix/fix/Unable_to_list_network_interfaces_on_FreeBSD
Fix vagrant not being able to list network devices on some FreeBSD boxes.
2017-07-21 14:27:05 -07:00
Brian Cain 4ed93fb9ef (#8743) Fix puppet provisioner by removing manifestdir flag
Prior to this commit, the puppet provisioner would use the manifest dir
flag when running `puppet apply`. Not only is this flag redundant due to
how puppet apply works, but it is also deprecated in Puppet 4 and
removed in Puppet 5. This commit simply removes the flag when invoking
`puppet apply`.
2017-07-19 09:59:59 -07:00
Brian Cain 6fc522a03b Merge pull request #8781 from briancain/fix-rsync-auto-relative-folders
rsync-auto relative dirs from vagrantfile
2017-07-17 10:55:11 -07:00
Brian Cain 773c4fff13 Fixup util/ssh and ansible/provisioner tests 2017-07-17 10:21:26 -07:00
Tomoyuki Sakurai a76dfc7b37 as `key` is a file path, it must be quoted 2017-07-14 10:38:07 -07:00
Tomoyuki Sakurai fe3674e169 another '-i' was used here 2017-07-14 10:34:57 -07:00
Brian Cain 4440056fff (#8770) rsync-auto relative dirs from vagrantfile
Prior to this commit, rsync-auto would not properly rsync realtive dirs
outside the cwd if defined in the Vagrantfile. This commit updates that
to ensure that the command looks at the Vagrant config to ensure that
folder was intended to be rsync'd to the machine even if outside the
current working dir.
2017-07-14 09:26:10 -07:00
Eugenio Marzo 3a5331cbb2 replaced not with ! in the if 2017-07-12 15:32:39 +02:00
Eugenio Marzo dd3d782659 Added exception if chef.node_path is defined on Vagrantfile but the directory does not exist locally 2017-07-12 15:27:10 +02:00
Evgeny Sinelnikov 015d98e76c guests/alt: Fix flavor and network configure with unit tests 2017-07-11 00:35:28 +03:00
Evgeny Sinelnikov 6ef55c172d guests/alt: Adjust flavour detect and restart network after set hostname 2017-07-09 18:16:25 +03:00
Evgeny Sinelnikov 26f7a04b86 hosts/alt: Add hosts capabilities for ALT Linux platforms 2017-07-08 21:36:18 +03:00
Evgeny Sinelnikov 88c0cb855f guests/alt: Update network configuration
Fix network mask to CIDR notation and network configure stop and
restart commands with NetworkManager
2017-07-08 21:30:52 +03:00
Chris Roberts 7e4a34c323 Merge pull request #8761 from chrisroberts/communicator/win-ssh-tmp
WinSSH communicator updates
2017-07-07 11:46:53 -07:00
Chris Roberts cef38eefd0 Add public key capability to Windows guests for winssh communicator 2017-07-07 11:26:32 -07:00
Chris Roberts bcc09e10e6 Make upload directory for winssh communicator configurable
Fixes #8731
2017-07-07 11:04:37 -07:00
Caleb Marble 2aceb03b19 Fix vagrant not being able to list network devices on FreeBSD boxes. 2017-07-07 09:03:38 -05:00
Brian Cain 1bcba57eb7 Merge pull request #8756 from briancain/rsync-auto-docker-provider-fixes
Only rsync-auto current working dir with docker provider
2017-07-06 15:49:34 -07:00
Brian Cain b1548a2eb6 (#5160) Only rsync-auto current working dir with docker provider
Prior to this commit, when users invoked the `rsync-auto` command using
the docker provider with boot2docker, vagrant would rsync all known
containers using the boot2docker vm rather than the current working dir.
This commit updates that behavior to ensure that only the current
working dirs vagrant machines will be rsynced.
2017-07-06 15:05:42 -07:00
Chris Roberts f700b111ce Merge pull request #8695 from jen20/smartos-nfs
guests/smartos: Add/fix various guest capabilities
2017-07-05 15:28:42 -07:00
Evgeny Sinelnikov 3dd90aa955 Add ALT Linux platforms guest detection and support
* ALT Linux platforms is an original rpm based distribution
forked as Mandrake Russian Edition Spring at 2001 year
* Distributions of ALT Linux use etcnet (https://www.altlinux.org/Etcnet) as
internal network configuration system needs for configure_networks support
2017-07-03 00:25:33 +03:00
Brian Cain 864340ec58 Invoke tee from specific path
This commit updates the use of `tee` to use an explicit path when
invoked rather than relying on where `tee` has been defined in a users
PATH.
2017-06-29 16:11:18 -07:00
Brian Cain 0225d63055 Merge pull request #8722 from briancain/add-post-setup-proc-for-docker
Add post-install provisioner to docker provisioner
2017-06-28 08:32:23 -07:00
Brian Cain a05d95bd0a (#7139) Add post-install provisioner to docker provisioner
Prior to this commit, if a user attempted to configure
`/etc/default/docker` through vagrant prior to installation, the package
manager would not override an existing configuration and installing
docker would then fail. This commit fixes this by introducing a
`post_install_provisioner` that allows users to define a provisioner
block that will run after docker has been installed, allowing users to
configure `/etc/default/docker` how they want.
2017-06-27 16:01:23 -07:00
Chris Roberts 138408ab7c Merge pull request #8710 from chrisroberts/enhancement/atlas-to-vc
Updates for Vagrant Cloud
2017-06-26 16:43:44 -07:00
Chris Roberts 5f955c3d38 Convert atlas references to vagrant cloud 2017-06-23 10:01:51 -07:00
Dimitrios Kouzis-Loukas 34d8ffb9b2 Fixing vagrant ssh issue 8705
Fixing vagrant issue https://github.com/mitchellh/vagrant/issues/8705
2017-06-21 10:23:34 -04:00
Chris Roberts 8437dccca2 Merge pull request #8678 from caveman-dick/fixWindow2012R2Issue
Fixes #8677 - Detect the result of the has_vmcx_support.ps1 properly
2017-06-19 16:51:46 -07:00
Chris Roberts b3365af4b8 Merge pull request #8666 from louy2/patch-1
Chomp lookup gid
2017-06-19 16:45:04 -07:00
Chris Roberts c5b3751a83 Properly handle exception raised when property does not exist 2017-06-19 14:04:57 -07:00
James Nugent b0b9d044b5 guests/smartos: Add/fix various guest capabilities
This commit adds a variety of fixes for SmartOS guest support:

- Host name setting now works in the global zone and in non-global zones
- NFS now works in the global zone and the non-global zone.
- Tests are updated and moved to the (apparently) more modern style
2017-06-16 17:00:50 -04:00
Yufan Lou b8bad54ad9 Fix nil case 2017-06-16 11:22:56 +08:00
Brian Cain fbda3af106 Merge pull request #8693 from briancain/7855/master/introduce-more-ssh-config-options
Introduce more ssh options for machines
2017-06-15 16:38:18 -07:00
Brian Cain b02f110cd8 (#7855) Introduce more ssh options for machines
This commit allows the user to configure two additional options that
were previously not configurable: Compression and DSAAuthentication.
Each config option is set as a boolean, and if left out of the config
will default to its previous behavior which is included and set to
"yes". If the user explicitly sets it to false, it will not be included
as an ssh option.
2017-06-15 16:29:53 -07:00
Chris Roberts d260fe7d38 Merge pull request #7865 from DavidWittman/7454-fix-salt-minion-id-config
Fix minion_id config for salt provisioner
2017-06-15 16:01:33 -07:00
Richard Gareau 056f837fed Do not use UNC path for Solaris guest on Windows 2017-06-15 15:15:39 -07:00
Chris Roberts 6906dbc558 Merge pull request #8467 from MartinNowak/patch-1
fix `config.ssh.keys_only = false` for ansible
2017-06-14 16:54:24 -07:00
Chris Roberts 12e63de542 Merge pull request #8553 from bdwyertech/kali
Add support for Kali Linux
2017-06-14 16:47:32 -07:00
Chris Roberts 60a438396f Merge pull request #8588 from aligenttimaslat/bugfix/rsync_mkdir_on_windows
Fix a problem when using rsync folders on windows clients
2017-06-14 16:41:36 -07:00
Chris Roberts 3f8172d874 Merge pull request #8618 from jen20/smartos-guests
guests/smartos: Add/fix various guest capabilities
2017-06-14 16:33:46 -07:00
Chris Roberts fe10b45cdb Merge pull request #8659 from HarryWeppner/docker-compose-check
fix `docker-compose` check on `PATH`
2017-06-14 15:24:25 -07:00
Andreas Olsson f6a9dcdd6f Catch pip_args in FreeBSD's and SUSE's ansible_install
While neither the FreeBSD provisioner nor the SUSE provisioner support
installing Ansible using pip their ansible_install methods still get
called with that fourth argument. The result being these errors when
Vagrant tries to install Ansible.

    /opt/vagrant/embedded/gems/gems/vagrant-1.9.5/plugins/provisioners/ansible/cap/guest/freebsd/ansible_install.rb:10:in `ansible_install': wrong number of arguments (4 for 3) (ArgumentError)
    /opt/vagrant/embedded/gems/gems/vagrant-1.9.5/plugins/provisioners/ansible/cap/guest/suse/ansible_install.rb:9:in `ansible_install': wrong number of arguments (4 for 3) (ArgumentError)

The Arch provider, it too without pip support, already catches the
pip_args argument this way.
2017-06-14 21:01:44 +02:00
Brian Cain 3baa142e7c (#7685) Add a unique identifier to provision objects
Prior to this commit, Vagrant had no way internally to determine if a
provisioner object was unique if the `name` property was not set.
Because of this, when vagrant went to merge configs it would duplicate
an existing unnamed provisioner since it had no way of determining if a
user actually had added the same provisioner twice. This commit fixes
that by introducing an id which will default to `name` if its set, but
if not will be set by `SecureRandom.uuid`.
2017-06-13 15:46:14 -07:00
Richard Mayes 649fea13ff Detect the result of the has_vmcx_support properly
Fixes #8677
2017-06-13 18:20:48 +01:00
Brian Cain 6f21a19649 Merge pull request #8661 from briancain/6640/master/use-cipher-list-for-ssh-communicator
Use default cipher list for ssh communicator
2017-06-12 09:39:20 -07:00
Yufan Lou 3b63e1f8b8 Add chomp to lookup gid
Fixes #8664
2017-06-10 15:15:43 +08:00
Brian Cain 7a97f0a53e (#6640) Use default cipher list for ssh communicator
Prior to this commit, the ssh communicator would use the default cipher
list in Net::SSH to negociate which ciphers it should use between hosts.
Due to a bug in Net::SSH and the position of the `none` cipher in its
default cipher list, if a host supported the none cipher, but also
only supported other ciphers that came after none in the default list,
it would accept none and attempt to use that cipher instead of the other
supported ciphers. This commit fixes that behavior by copying the
default cipher list from Net::SSH and placing none last in the list so
that other ciphers can be used in the negotiation before attempting to
use the unsecure none cipher.
2017-06-09 17:18:15 -07:00
Harry Weppner 250e74cb79 fix check for `docker-compose` 2017-06-08 11:09:41 -07:00
Brian Cain 87b7514603 (#7188) Clean up vagrant snapshot restore/delete error messages
This commit adds some better handling around the snapshot restore and
delete commands for the virtualbox provider. If a user attempts to restore from
a vm that does not exist, instead of exiting 0 it will raise an
exception saying the virtual machine has not been created yet.
Addtionally, if a user attempts to restore from a snapshot id that does
not exist, instead of printing a complicated exception from the
virtualbox cli tool, it prints a more useful error message telling the
user that the snapshot does not exist.
2017-06-07 09:12:20 -07:00
Brian Cain 1ade699936 (#6827) Introduce tty flag for ssh command execution
Prior to this commit, if a user ran the `vagrant ssh -c CMD` command, it
would not allow the user to configure pseudo-terminal allocation. This
commit introduces a -t flag for the `vagrant ssh` command which defaults
to true if not specified.
2017-06-02 17:32:02 -07:00
James Nugent b84acaed3c guests/smartos: Add/fix various guest capabilities
This commit adds/changes the following for SmartOS guests:

- modifies the "Halt" capability to use /usr/sbin/poweroff in preference
  to /usr/sbin/shutdown with parameters, and modifies the associated
  test.

- adds an "InsertPublicKey" capability and tests.

- adds a "RemovePublicKey" capability and tests.

With this commit applied, the vast majority of typical Vagrant workflow
is available to SmartOS global zone guests (provided NFS mounts are used
rather than VMWare shared folders).
2017-05-30 15:18:18 +01:00
Brian Cain eadb0ac831 Raise exception if provider doesn't have snapshot capability
Prior to this commit, if a user attempted to use the `vagrant snapshot
save` or `vagrant snapshot list` commands on a vm whose provider did not
support snapshots, it would simply print a warning. This commit changes
that behavior by instead raising an error.
2017-05-26 15:22:25 -07:00
Brian Cain 6ddba4f7b3 (#7810) Enforce unique snapshot names
Prior to this commit, the vagrant snapshot plugin would save snapshots
with existing names which lead to duplicate snapshot names being saved.
This commit fixes that by checking to see if the given snapshot name
already exists and if so, fails telling the user the given snapshot name
already exists. If a user passes a --force flag, vagrant will first
delete the existing snapshot, and take a new one with the given name.
2017-05-25 16:28:17 -07:00
Tim Aslat 630858b9a8 This patch fixes an issue when using rsync folders on windows clients with cygwin & ssh enabled.
Before the patch this error will happen if the original directory already exists

-------------------------------------------------------------------------------------------------
==> windows: Rsyncing folder: /vhosts/oxfamshop.com.au/ => /cygdrive/c/inetpub/wwwroot
==> windows:   - Exclude: [".vagrant/", ".git/", "target/", "node_modules/"]
==> windows: Showing rsync output...
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!

mkdir '/cygdrive/c/inetpub/wwwroot'

Stdout from the command:

Stderr from the command:

mkdir: cannot create directory ‘/cygdrive/c/inetpub/wwwroot’: File exists
-------------------------------------------------------------------------------------------------

After the patch, this is result

-------------------------------------------------------------------------------------------------
==> windows: Rsyncing folder: /vhosts/oxfamshop.com.au/ => /cygdrive/c/inetpub/wwwroot
==> windows:   - Exclude: [".vagrant/", ".git/", "target/", "node_modules/"]
==> windows: Showing rsync output...
==> windows: rsync[stdout] -> sending incremental file list
==> windows: rsync[stdout] ->
==> windows: rsync[stdout] -> sent 500855 bytes  received 6635 bytes  78075.38 bytes/sec
==> windows: rsync[stdout] -> total size is 175357552  speedup is 345.54
-------------------------------------------------------------------------------------------------
2017-05-16 16:38:29 +09:30
Chris Roberts 27ca3ef831 Convert Windows paths in volumes if detected 2017-05-12 15:11:10 -07:00
Chris Roberts 36ecd40c52 Support optional detach and pass blocks through to execution. 2017-05-12 15:09:30 -07:00
Chris Roberts 6096bb299b Only set image if option given. Do not apply when setting build options. 2017-05-12 15:09:30 -07:00
Chris Roberts 42c9042221 Deep merge configuration settings and set any extra options 2017-05-12 15:09:30 -07:00
Chris Roberts 9242a69545 Allow direct set of composition and ensure basic types are used 2017-05-12 15:09:30 -07:00
Chris Roberts 4673bbb907 Properly define service build within composition. Full cleanup on destroy. 2017-05-12 15:09:30 -07:00
Chris Roberts b333e5cd82 Fix argument construction when adding dockerfile path
Fixes #7914
2017-05-12 15:09:30 -07:00
Chris Roberts d1c1c175a0 Support modifications of composition outside services 2017-05-12 15:09:30 -07:00
Chris Roberts d4bfade19f Include documentation on accessor in docker provider configuration 2017-05-12 15:09:30 -07:00
Chris Roberts deba93ce5c Add optional support for docker-compose
Adds configuration switch to enable using docker-compose
to create and manage docker containers.
2017-05-12 15:09:30 -07:00
Chris Roberts 5d83c03bfc Properly handle synced folders in docker provider on WSL 2017-05-12 14:05:12 -07:00
Chris Roberts 3c44ce9742 Support vbox provider within WSL rootfs. Make Windows access easier.
Enables proper setup of VMs started from within WSL rootfs paths. Updates
setup for Windows access when working within the WSL to auto-detect settings
instead of relying on user defined environment variables.
2017-05-12 13:11:53 -07:00
Chris Roberts 37901cd43c Merge pull request #8570 from chrisroberts/enhancement/wsl-support
Add support for running within WSL
2017-05-10 13:50:47 -07:00
Chris Roberts 2f5e15da55 Fetch first network device and pass to template for rendering 2017-05-10 12:44:37 -07:00
Chris Roberts a16b6f84e3 Remove reload via cli and just restart the service 2017-05-09 09:13:40 -07:00
Chris Roberts 39606e833f Update method documentation to correctly describe method 2017-05-09 09:13:14 -07:00
Chris Roberts c081916ce8 Always disconnect interface when controlled by NetworkManager 2017-05-08 19:30:35 -07:00
Chris Roberts 83b0c87f52 Support running Vagrant within the Windows Subsystem for Linux 2017-05-08 10:21:01 -07:00
Chris Roberts 8062b4f61f Merge pull request #8568 from chrisroberts/fix/hyperv-import
Update conditional check to use string equality
2017-05-08 10:17:35 -07:00
Chris Roberts af5f943123 Merge pull request #8567 from chrisroberts/fix/winssh
Enable capabilities for winssh communicator
2017-05-08 10:16:19 -07:00
Chris Roberts ffc6e3e282 Merge pull request #8566 from chrisroberts/fix/docker-ssh
Fall back to old style ssh info lookup in docker provider
2017-05-08 10:14:51 -07:00
Chris Roberts 9452e7cc38 Update conditional check to use equality check
Fixes #8444
2017-05-05 14:07:52 -07:00
Chris Roberts ee79dd0575 Enable windows guest capabilities using winssh communicator 2017-05-05 14:04:54 -07:00
Chris Roberts 62edaf5623 Allow shell to be defined when calling #execute 2017-05-05 14:04:54 -07:00
Chris Roberts 88dfe18a3f Fall back to old style ssh info lookup in docker provider
If ssh information cannot be properly extracted from within
the NetworkSettings data, fallback to original ssh information
implementation

Fixes #8552
2017-05-05 14:02:05 -07:00
Chris Roberts e5e0274ef5 Update hyperv and docker providers to raise exception on SSH when machine is not ready
This makes the behavior of the docker and hyperv provider consistent with the
virtualbox provider by raising an error on ssh actions if the machine is not
created or not running.

Fixes #8508
2017-05-05 14:01:12 -07:00
Brian Dwyer d427dd03d8
Add support for Kali Linux
Signed-off-by: Brian Dwyer <bdwyer@IEEE.org>
2017-05-02 23:30:10 -04:00
Chris Roberts 78e2bb513c Merge pull request #8531 from chrisroberts/network/guest-rhel
guests/rhel: Update network configuration
2017-05-01 15:56:25 -07:00
Chris Roberts 023a23403a Merge pull request #8433 from legal90/fix-os-friendly-name
virtualbox: Fix invalid share names in Windows guests
2017-05-01 15:49:13 -07:00
Chris Roberts 1df852c88a Reduce commands. Allow nm reload/restart to bring interfaces up.
Reduce the total number of commands run to configure interfaces. If
a service reload/restart is required, only execute it once instead
of once per device. When nm is managing a device, the explicit up
is not required.
2017-05-01 13:17:17 -07:00
Chris Roberts 71bfe7c884 Fix shell provisioner to execute batch files correctly
Call cmd.exe explicitly when running batch files to easily
manage special characters that may be within the path.

Fixes #8535
2017-04-28 15:05:08 -07:00
Chris Roberts 414184b76b guests/rhel: Update network configuration
Properly detects NetworkManager on guest as well as devices controlled
by NetworkManager. Provides configuration option to enable/disbale
NetworkManager control on devices.
2017-04-26 13:15:33 -07:00
Arjan Weurding 399789467a Fix crash when using HyperV
Fix the error 
```homestead-7: Creating and registering the VM...
An error occurred while executing a PowerShell script. This error
is shown below. Please read the error message and see if this is
a configuration error with your system. If it is not, then please
report a bug.

Script: import_vm_vmcx.ps1
Error:

At C:\Program Files
(x86)\HashiCorp\Vagrant\embedded\gems\gems\vagrant-1.9.4\plugins\providers\hyper                    v\scripts\import_vm_vmcx.ps1:18 char:37
+     [string]$differencing_disk=$null
+                                     ~
Missing ')' in function parameter list.
At C:\Program Files
(x86)\HashiCorp\Vagrant\embedded\gems\gems\vagrant-1.9.4\plugins\providers\hyper                    v\scripts\import_vm_vmcx.ps1:20 char:1
+ )
+ ~
Unexpected token ')' in expression or statement.
    + CategoryInfo          : ParserError: (:) [], ParseException
    + FullyQualifiedErrorId : MissingEndParenthesisInFunctionParameterList
```
2017-04-26 08:15:06 -07:00
Chris Roberts 2acded113c Retry SSH connection on Errno::ECONNABORTED
In some cases the SSH connection may be aborted while waiting
for setup. This includes aborted connections in the list of
applicable exceptions to retry on while waiting for the connection
to become available.

Fixes #8520
2017-04-25 13:38:24 -07:00
Chris Roberts e62d71b645 Remove comment removal from /etc/hosts file on guests
Fixes: #7794
2017-04-20 17:07:56 -07:00
Chris Roberts 0e89fdf182 Merge pull request #8498 from chrisroberts/win/spaces
Quote exec_path to properly handle spaces in path
2017-04-20 16:08:24 -07:00
Chris Roberts c963532d6e Use configured upload path for winssh communicator 2017-04-20 16:05:41 -07:00
Chris Roberts 82e268a3e2 Quote exec_path to properly handle spaces in path
Fixes #7234
2017-04-19 12:23:55 -07:00
Chris Roberts 067a0a5d0d communicator/ssh: Do not pass empty data to registered blocks
Prevent sending empty data strings to defined blocks handling
stderr and stdout output. These can occur when the garbage
marker is identified and collected data pruned, but no remaining
data is left to send.

Fixes #8259
2017-04-18 13:33:19 -07:00
Chris Roberts 232a44f46d Merge pull request #8485 from chrisroberts/communicators/win-ssh
Add winssh communicator
2017-04-17 08:21:33 -07:00
Chris Roberts e52821364a Merge pull request #8407 from gh2k/gentoo-systemd
Add support for gentoo guests that use systemd
2017-04-16 14:17:19 -07:00
Chris Roberts 9c127a4401 Merge pull request #8443 from anandsuresh/feature/freebsd-chef-installed
Add chef_install(ed?) guest capability for freebsd
2017-04-16 08:23:16 -07:00
Chris Roberts 1a17d829f5 Merge pull request #8472 from derks/elementary-guest
Support for Elementary OS 0.4 - Issue #8471
2017-04-16 08:16:06 -07:00
Chris Roberts 38a5f7c873 Merge pull request #8310 from tsmolka/patch-guest-esxi
guests/esxi: Added public_key capability
2017-04-16 08:13:26 -07:00
Chris Roberts 2c9cd87a71 Remove unused configuration options 2017-04-16 08:08:22 -07:00
Chris Roberts b35c68eacc Allow sudo wrapping but default to no-op 2017-04-16 07:59:29 -07:00
Chris Roberts c56acfab94 Add WinSSH communicator 2017-04-15 07:12:58 -07:00
Dafydd Jones 71216cf4f9 update latest salt minion version for windows 2017-04-13 12:36:45 -07:00
Martin Nowak 1ca247f516 fix `config.ssh.keys_only = false` for ansible
Also see #5017.
2017-04-12 12:31:00 +02:00
BJ Dierkes 55da086f5f Support for Elementary OS 0.4 - Issue #8471 2017-04-12 02:36:47 -05:00
Chris Roberts a60fe47965 Merge pull request #8428 from knbnnate/master
Salt ver year.month can have 2-digit month
2017-04-11 20:42:42 -07:00
Chris Roberts 21e195c75a Merge pull request #7425 from tjuerge/6220-mount_shared_folder-via-ssh
Add support for mounting synched folders on windows guest via ssh
2017-04-05 15:11:32 -07:00
Anand Suresh 30f4eb62ea Add chef_install(ed?) guest capability for freebsd 2017-04-04 22:10:02 -07:00
Chris Roberts df069deac0 Validate plugin sources and report errors if detected. 2017-04-04 17:53:04 -07:00
Chris Roberts 05b6cdab6c Do not force docker host VM on Darwin or Windows 2017-04-03 14:48:14 -07:00
Chris Roberts 74ad90d8e0 Merge pull request #7840 from pstengel/bugfix/7651
Do better at finding ssh_info for Docker
2017-04-03 14:41:50 -07:00
Mikhail Zholobov 3c44ab7cf2
Escape backward slashes in vbox share name
That fixes invalid share names in Windows guests, where backward slash character is
used as a path separator.
2017-04-02 13:05:23 +02:00
knbnnate 8c31a0c3ff Salt ver year.month can have 2-digit month 2017-03-30 17:00:46 -04:00
Gökhan Şengün 51a15d23bd Correct box version sorting of box list command.
Boxes are already correctly sorted as a result of PRs #7956 and #8334. The extra sort here breaks.
2017-03-29 00:56:42 +03:00
Chris Roberts 4af1fbccfb Merge pull request #8410 from chrisroberts/fix/smb-mount
Fix linux guest mount smb capability
2017-03-27 09:07:22 -07:00
Chris Roberts 98b0ad1464 Fix linux guest mount smb capability 2017-03-24 13:42:51 -07:00
Gilles Cornu 80d105cf8c
ansible_local: Add the :pip_args_only install mode
With the introduction of `pip_args` option, you can easily extend the
`:pip` installation mode behaviour. But some interesting/advanced usages
are still not possible because of the auto-generated parts ("ansible"
package, version selection, and the `--upgrade` flag).

By adding this "pip_args_only" install mode, it will be for instance
possible to:
- install unofficial releases, like release candidates published at
  https://releases.ansible.com/
- install more pip packages (e.g. via a `requirements.txt` file), with
  hash validation, etc.

Note that there is no config validation that requires `pip_args` option
to be defined when the :pip_args_only mode is selected. This would be
more elegant, and user friendly to raise a configuration error, but this
can wait. At least, running with an empty `pip_args` won't lead to any
command crash, since the rather dummy "pip install" shows an helper
notice and terminates with a zero (0) exit code.

This change is thought as a complement to the changes originally
proposed in pull request GH-8170.
2017-03-24 17:35:34 +01:00
Simon Detheridge 3a3216ae0c gentoo/guest: #8406 support systemd when configuring net 2017-03-24 16:11:16 +00:00
Simon Detheridge e06848a649 gentoo/guest: #8406 support systemd when changing hostname 2017-03-24 16:10:52 +00:00
Gilles Cornu b40d347944
ansible_local: Polish the new `pip_args` option
Ref GH-8170
2017-03-24 00:01:17 +01:00
James Carr 7e2e5654ed
ansible_local: Add `pip_args` option
With this new option, it is now possible to pass additional arguments to
pip command when the `install_mode` is "pip".

(@gildegoma reworded the original commit message of pull request GH-8170)
2017-03-24 00:01:14 +01:00
Chris Roberts 256ce3b0d5 Merge pull request #8264 from hasyimibhar/command-validate
Add validate command
2017-03-23 09:52:12 -07:00
Chris Roberts e7abd1114b Merge pull request #8393 from chrisroberts/fix/default-provider-env-var
Prevent other provider install attempts when explicit provider given
2017-03-23 09:35:59 -07:00
Bjorn Brala 2f7e0d3a1f Virtualization extensions wern't enabled for vmcx file format, so it didn't work for Windows 10 and up. Fixes #8402 2017-03-23 07:54:41 +01:00
Bjorn Brala 0534ebf895 Merge remote-tracking branch 'mitchellh/master' into feature-hyperv-integration-services-fresh
# Conflicts:
#	plugins/providers/hyperv/action/import.rb
#	plugins/providers/hyperv/config.rb
#	website/source/docs/hyperv/configuration.html.md
2017-03-23 07:49:57 +01:00
Chris Roberts 72d0eb497d Isolate push deprecation to atlas strategy only 2017-03-21 15:08:17 -07:00
Chris Roberts 7c4252e24a Prevent other provider install attempts when explicit provider given 2017-03-21 10:58:06 -07:00
Chris Roberts 7a03c6e013 Add /bin/docker to path list for installation verification 2017-03-20 11:38:44 -07:00
Chris Roberts a0761eb2ea Allow initialization argument to be used in parent 2017-03-19 07:35:46 -07:00
Chris Roberts 1c1adcad9a Merge pull request #8325 from chrisroberts/enhancement/nested-hyperv
Nested Hyper-V
2017-03-17 14:19:58 -07:00
Bjorn Brala e2dd23b06c First implementation for Integration services for Hyper-V as discussed in https://github.com/mitchellh/vagrant/pull/6321 #6321 2017-03-15 22:12:19 +01:00
Björn Brala 765494a2bf Add configuration to HyperV config 2017-03-15 18:09:18 +01:00
Chris Roberts 6f578590a9 Skip forwarded port if disabled in docker provider 2017-03-09 10:28:41 -08:00
Chris Roberts dbf01572ef Merge pull request #8122 from chrisroberts/virtualbox/uid-gid
Use uid/gid from mount_options if provided for synced folders.
2017-03-06 14:21:11 -08:00
Chris Roberts 78e8e17869 Cast host value to string prior to empty? check.
Force string type prior to empty? check to prevent errors if
host ip value is nil. Add coverage for proper handling of nil
value.
2017-03-06 09:14:04 -08:00
Chris Roberts 6631fbdb9b Merge pull request #8073 from bshurts/fix/issue-7983
HyperV inaccurate winrm address - issue-7983
2017-03-06 09:11:34 -08:00
Chris Roberts e1e3df68da Merge pull request #7967 from apupier/removeRequirementsOnPathWithoutSpace
Remove requirements on path without space as issue was fixed in Ruby
2017-03-06 09:08:06 -08:00
Chris Roberts edd8a10b29 Merge pull request #8326 from chrisroberts/refactor/vbox-5.1
Refactor the virtualbox 5.1 driver implementation
2017-03-06 08:36:17 -08:00
Chris Roberts 6d3ab39b27 Merge pull request #7035 from pravinchandar/4608
Fix for #4608: Support for port forwarding in an IP aliased environment
2017-03-03 15:57:04 -08:00
Chris Roberts 98c50ee1c8 Refactor the virtualbox 5.1 driver implementation 2017-03-02 14:42:37 -08:00
Patrick Lang 8cf2240383 Finish hooking up hv.enable_virtualization_extensions 2017-03-02 14:06:39 -08:00
Patrick Lang 6900fc3904 Starting support for Hyper-V nested virtualization 2017-03-02 14:06:21 -08:00
Tobias e3e7484e16 Merge tag 'tags/v1.9.1' into patch-guest-esxi 2017-02-28 06:30:34 -08:00
Tobias cdeac10b36 guests/esxi: Added public_key capability 2017-02-28 02:35:00 -08:00
Chris Roberts 16c2b1ec50 Merge pull request #8291 from chrisroberts/enhancement/stderr-garbage
Discard initial stderr data
2017-02-24 07:34:28 -08:00
Chris Roberts 60cd9057a7 Add command deprecation module to push 2017-02-24 06:47:44 -08:00
Chris Roberts 64fd2f71d6 communicator/ssh: discard stderr data before command run 2017-02-16 15:43:04 -08:00
Chris Roberts 0c307476fa Merge pull request #8165 from kaorimatz/fix-arch-multiple-networks
guests/arch: fix configuring multiple network interfaces fails
2017-02-09 17:41:09 -08:00
Hasyimi Bahrudin cbda9f0906 Add validate command for validating Vagrantfile 2017-02-07 13:43:49 +08:00
Chris Roberts 4bbd43c73f Display default on expunge command questions. Prompt user on invalid input. 2017-01-12 07:16:57 -08:00
Chris Roberts c9c942a17f Merge pull request #8119 from bbrala/check-vmcx-support
Harden VMCX support
2017-01-05 15:16:17 -08:00
Chris Roberts 5004f37a36 Merge pull request #8148 from mikefaille/netfixRHEL
Revert "Fix `service network restart` on RHEL-7 / Fedora"
2017-01-05 15:07:17 -08:00
Paul Stengel d98c5b8c00 Do better at finding ssh_info for Docker 2017-01-05 17:41:39 -05:00
Chris Roberts c11534e13c Merge pull request #8102 from mwrock/winrmv2
Refactor winrm communicator to use latest winrm gems and v2 api
2017-01-05 10:48:44 -08:00
Chris Roberts e09e31dd6a Merge pull request #8092 from ephemeralsnow/bugfix/quotes
Fix quotes
2017-01-05 10:22:54 -08:00
Satoshi Matsumoto 829b995225
guests/arch: fix configuring multiple network interfaces fails 2017-01-02 15:32:23 +09:00
Raymond P. Burkholder 30ea15994a Update command.rb
Issue #8159

while using:
$ vagrant package --base ${VIRTUALBOXNAME}

this error occurs:

/usr/share/rubygems-integration/all/gems/vagrant-1.9.0/plugins/commands/package/command.rb:59:in `package_base': uninitialized constant VagrantPlugins::CommandPackage::Command::SecureRandom (NameError)
Did you mean?  SecureRandom
        from /usr/share/rubygems-integration/all/gems/vagrant-1.9.0/plugins/commands/package/command.rb:42:in `execute'
        from /usr/share/rubygems-integration/all/gems/vagrant-1.9.0/lib/vagrant/cli.rb:42:in `execute'
        from /usr/share/rubygems-integration/all/gems/vagrant-1.9.0/lib/vagrant/environment.rb:274:in `cli'
        from /usr/share/rubygems-integration/all/gems/vagrant-1.9.0/bin/vagrant:118:in `<top (required)>'
        from /usr/bin/vagrant:22:in `load'
        from /usr/bin/vagrant:22:in `<main>'
2016-12-28 19:02:13 -04:00
Michaël Faille 96611341a9 Revert "Fix `service network restart` on RHEL-7 / Fedora"
`/etc/init.d/network restart` already restart NM and shutdown interfaces.

In start() :
```
        if [ "$(LANG=C nmcli -t --fields running general status 2>/dev/null)" = "running" ]; then
                nmcli connection reload
        fi

```

In stop() :

```
       for i in $vpninterfaces $xdslinterfaces $bridgeinterfaces $vlaninterfaces $remaining; do
                unset DEVICE TYPE
                (. ./ifcfg-$i
                if [ -z "$DEVICE" ] ; then DEVICE="$i"; fi

                if ! check_device_down $DEVICE; then
                   action $"Shutting down interface $i: " ./ifdown $i boot
                   [ $? -ne 0 ] && rc=1
                fi
                )
        done
```
Where $remaining include all "others" interfaces including eth*

This reverts commit 166d10d4e1.
2016-12-21 20:33:57 -05:00
Chris Roberts 9f393fc1e0 Use uid/gid from mount_options if provided for synced folders.
This also extracts the gid/uid detection and upstart actions into
reusable module to provide consistent behavior.
2016-12-14 12:12:17 -08:00
Bjorn Brala f808f74009 Harden VMCX support. Vagrant now checks if your Windows version has support for vmcx and then uses the VMCX file. 2016-12-14 15:14:56 +01:00
Chris Roberts 7f9a4b67d2 Fix virtualbox shared folders path 2016-12-13 12:09:36 -08:00
Matt Wrock 725824e1dd refactor winrm communicator to use latest winrm gems and v2 api
Signed-off-by: Matt Wrock <matt@mattwrock.com>
2016-12-11 00:52:00 -08:00
Alvaro Miranda Aguilera 06271f55c6 Show comma separated include 2016-12-10 21:56:21 +01:00
Bjorn Brala 457c58fe71 Mention `--base` option is VirtualBox only in package command. 2016-12-08 21:22:24 +01:00
Chris Roberts 23c41f4461 Merge pull request #7867 from bbrala/hyperv-package
Package Hyper-V boxes
2016-12-07 13:37:47 -08:00
ephemeralsnow 556b82da1c Fix quotes 2016-12-07 18:04:33 +09:00
Chris Roberts 0587707044 Merge pull request #8051 from jklippel/vagrant-issue-7368
redirect any output to stderr by /sbin/init to /dev/null when checking for upstart capability
2016-12-05 15:21:04 -08:00
Bryce Shurts e4626d088d issue-7983 - Helper now throws WinRMNotReady exception is host ip is reported as an empty string 2016-12-01 13:03:38 -06:00
Latchezar Tzvetkoff 166d10d4e1 Fix `service network restart` on RHEL-7 / Fedora
RHEL-7 / Current Fedora versions tend to use NetworkManager for
configuring the networks, and `service network restart` might fail.
If the `NetworkManager` service is running, we should restart it,
otherwise we try restarting `network`.
2016-11-29 15:40:48 +02:00
jklippel b10bc2e8c2 Vagrant-Issue: 7368: redirect any output to stderr by /sbin/init to /dev/null when checking for upstart capability 2016-11-29 08:10:25 +01:00
Chris Roberts cc37207f9c Update key names when passing to install action 2016-11-28 16:56:00 -08:00
Chris Roberts b0a3cfa978 Provide error information on plugin repair error.
Also includes original exception information within logger output.
2016-11-28 07:48:16 -08:00
Bjorn Brala 10181f7c8a When you set the memory of a HyperV machine to something lower than the original range it fails. 2016-11-23 08:39:49 +01:00
Chris Roberts d9c1c36b3c Iterate plugin list using manager result to retain sorting 2016-11-21 09:25:56 -08:00
Chris Roberts 23b40a31ed Skip reinstallation of system plugins 2016-11-17 16:40:30 -08:00
Chris Roberts ae21c31a6c Use Manager#installed_plugins information to display updates 2016-11-16 13:27:05 -08:00
Gilles Cornu 8caed8ea16 Merge pull request #7918 from mitchellh/gildegoma/fix-7195
Add `config_file` option to both Ansible provisioners
2016-11-15 08:29:30 +01:00
Chris Roberts 1b04d3da26 Merge pull request #7854 from bbrala/import-vmcx-script
Add support for vmcx (Hyper-V binary config format) to the Hyper-V import script
2016-11-14 13:50:07 -08:00
Chris Roberts ac74774fcb Merge pull request #8000 from chrisroberts/plugins/updates
Plugin handling updates
2016-11-14 13:24:52 -08:00
Chris Roberts 0f720a4386 Merge pull request #7985 from chrisroberts/shell-provisioner/checksum
Add md5 and sha1 checksum support to Downloader.
2016-11-14 13:19:22 -08:00
Chris Roberts 1806cc1c5c Remove deprecated plugin install option 2016-11-11 15:13:03 -08:00
Chris Roberts 5482692127 guests/linux: Only match interfaces without special characters 2016-11-10 07:19:26 -08:00
Chris Roberts 2219a4def0 Fix Hash construction for constant value in salt provisioner 2016-11-09 16:29:36 -08:00
Chris Roberts 2d6071a55b Merge pull request #7793 from chrisroberts/enhancement/bundler-less
[core] Remove bundler usage for plugin management
2016-11-09 16:17:47 -08:00
Chris Roberts 2dcb47410f Merge pull request #7976 from chrisroberts/ssh/shell-compat
Allow custom generation of environment variable exports
2016-11-09 16:14:33 -08:00
Chris Roberts 8d2d324b13 Merge pull request #7980 from chrisroberts/synced-folder/auto-mount
Named synced folders
2016-11-09 16:12:03 -08:00
Chris Roberts da45ca707c Add md5 and sha1 checksum support to Downloader.
Allows checksum validation on downloaded files via Util::Downloader
using MD5 and/or SHA1 checksums. This also integrates checksum validation
support with the shell provisioner for downloaded remote files.
2016-11-09 16:05:39 -08:00
Björn Brala 3ef9968c59 Add new `prune` command as discussed in: #6863 #5633
Usage: vagrant box prune [options]

Options:

    -p, --provider PROVIDER          The specific provider type for the boxes to destroy.
    -n, --dry-run                    Only print the boxes that would be removed.
        --name NAME                  The specific box name to check for outdated versions.
    -f, --force                      Destroy without confirmation even when box is in use.
    -h, --help                       Print this help
2016-11-09 09:19:49 +01:00
Chris Roberts d528902edc Make guestpath an optional parameter for synced_folders 2016-11-08 15:33:30 -08:00
Jonathan A. Sternberg c3438ff8f6 Allow overriding the inferred name from `config.vm.synced_folder`
If a `name` is specified as an option, it will be used as the id instead
of inferring it from the `guestpath`. If `guestpath` is nil, the `name`
needs to be specified so the folder can be mounted with a name.

This also fixes the synced folder code to allow `guestpath` to be nil.
It was allowed in a previous version for the purpose of preventing a
directory from being auto mounted (#936), but seems to have become an
error at some point after that.

An example of modifying the default /vagrant folder so it doesn't
auto-mount anymore:

    config.vm.synced_folder ".", nil, name: "/vagrant"

An example of sharing another folder, but not auto-mounting it:

    config.vm.synced_folder ".", nil, name: "foobar"

Fixes #6835.
2016-11-08 14:56:29 -08:00
Chris Roberts dfc5e0d9a0 communicator/ssh: Allow custom generation of environment variable exports 2016-11-08 09:50:39 -08:00
Aurelien Pupier c423619cd7 Remove requirements on path without space as issue was fixed in Ruby 2016-11-08 16:39:43 +01:00
Chris Roberts f045f74d86 Only proceed if confirmation is matched. Do not continue if user aborted. 2016-11-07 19:25:32 -08:00
Chris Roberts b15ef3a6ff Add plugin expunge command to remove all user installed plugins 2016-11-07 18:48:51 -08:00
Chris Roberts 5d68c8c30b Include plugin repair command 2016-11-07 18:48:51 -08:00
Chris Roberts dbbd2d8e36 Remove deprecated methods and update tests. 2016-11-07 18:48:14 -08:00
Chris Roberts d1a778dbfb Include error handling when subprocess commands fail 2016-10-31 07:42:30 -07:00
Chris Roberts 90db9c95b8 Refactor linux host NFS to share common functionalities 2016-10-29 17:53:58 -07:00
Chris Roberts 40dc0de665 Use Util::StringBlockEditor to modify /etc/exports 2016-10-29 15:46:35 -07:00
Aron Griffis 7e83edd643 Rewrite linux/nfs_cleanup for security and multi-user, fixes #7938
Avoid using a temporary file, rather do the substitution in Ruby and
write /etc/exports directly.
2016-10-29 15:46:35 -07:00
Chris Roberts 58c3be9344 Default the puppet config environment variables to an empty hash 2016-10-27 15:14:13 -07:00
Chris Roberts 9b12d4db48 Pass configuration environment variables to apply command 2016-10-26 09:51:56 -07:00
Azul a4408037ba add support for environment variables on a puppet apply run 2016-10-26 09:36:34 -07:00
Chris Roberts dd7294b021 Merge pull request #7928 from chrisroberts/rsync/exclude-paths
synced_folders/rsync: Quote exclude paths
2016-10-26 07:16:15 -07:00
Chris Roberts eb7568b2ed Merge pull request #7922 from chrisroberts/netbsd/rsync
guests/netbsd: Use full path to pkg_add command
2016-10-25 18:51:42 -07:00
Chris Roberts be3fa85853 Merge pull request #7921 from chrisroberts/fix/key-fixups
Remove `set -e` usage for better shell compatibility
2016-10-25 14:43:04 -07:00
Chris Roberts 365b98fee6 Merge pull request #7926 from chrisroberts/networking/rhel
guests/redhat: Force NetworkManager to reload device configurations
2016-10-25 14:41:07 -07:00
Chris Roberts fc6824e79c guests/netbsd: Include /usr/sbin in PATH for pkg_add command 2016-10-25 14:22:38 -07:00
Chris Roberts 05c5aab92a synced_folders/rsync: Escape exclude paths 2016-10-25 13:59:03 -07:00
Chris Roberts c39b3fbb76 guests/openbsd: Check package installation after installing package
The `pkg_add` command will return `0` when a package requested for
installation is not found. This adds a validation check to ensure
the rsync package is actually installed on the guest.
2016-10-25 12:16:52 -07:00
Chris Roberts 67f3c8b48c guests/redhat: Force NetworkManager to reload device configurations
When configuring network devices force NetworkManager to reload new
configuration files as they appear. This prevents NetworkManager from
attempting to continue managing devices on initial start up.
2016-10-25 07:45:38 -07:00
Chris Roberts fb4e4320b2 Remove `set -e` usage for better shell compatibility 2016-10-24 10:30:08 -07:00
Chris Roberts 3ee2bca793 Merge pull request #7907 from chrisroberts/salt-config/defaults
provisioners/salt: Synchronize config defaults with documentation
2016-10-24 07:07:41 -07:00
Gilles Cornu b9174895a5
provisioners/ansible (minor): Fix alphabetical order of base attributes
This point was missed in #6627.
2016-10-23 20:46:30 +02:00
Gilles Cornu a842abbc38
provisioners/ansible(both): Add config_file option
With this new option defined, the `ansible-galaxy` and
`ansible-playbook` commands generated by the Ansible provisioners will
be executed with the ANSIBLE_CONFIG environment variable set
accordingly.

Resolve GH-7195

This commit also fix the following open issues:
- Implement the pending RSpec examples about path existence checks
  performed by the ansible (remote) provisioner.
- In verbose mode, the ansible remote provisioner now correctly displays
  the Ansible Galaxy parameters ("role_file" and "roles_path") with
  single quotes (which is safer for potential copy-paste usage).

Additional Notes:
- Test coverage for `ansible_local` provisioner is still not
  implemented. See GH-6633.
- Test coverage for galaxy from host is not implemented yet (due to
  general issue with mocking both command executions, see
  https://github.com/mitchellh/vagrant/pull/6529#r45278451
2016-10-22 01:09:12 +02:00
Gilles Cornu d56cf55a89
provisioners/ansible_local: Use quotes for path checking
Without this fix, the ansible_local provisioner fails to check the
existence of a filesystem path that contains a blank/space character.
2016-10-21 16:44:18 +02:00
Gilles Cornu 432f79339c
provisioners/ansible(base): Add parenthesis for better readability
Make more evident on what the "if modifiers" (aka trailing conditionals) apply.
2016-10-21 16:43:37 +02:00
Bjorn Brala 37a525fbbc Little bit of cleanup. 2016-10-20 22:43:00 +02:00
Bjorn Brala e6093dd709 The virtual machine doesnt need 'Virtual Machines' in its path, this is created when importing. 2016-10-19 21:03:48 +02:00
Bjorn Brala c075c026be Keyboard language setting made my comment bad 2016-10-19 20:56:52 +02:00
Bjorn Brala 055bed5918 removed an extra echo and added proper error message when there is incompatibilities. Appearantly importing into a compressed folder wont work and will result in an error. 2016-10-19 20:55:56 +02:00
Chris Roberts fa2a9105f0 provisioners/salt: Synchronize config defaults with documentation 2016-10-17 10:11:39 -07:00
Brian Retford 418064519d Move dynamic memory settings into conditional block 2016-10-14 18:53:44 -07:00
Jake Ballard 803fff7f03 Fix issue with missing slash in paths
It was failing to create files below the machines\default\hyperv folder, rather it was creating folders named 'hypervSnapshots', 'hypervVirtual Hard Disks', and 'hypervVirtual Machines'. This was causing the files to not be removed when destroying the vm, and an error when subsequently bringing it up again.
2016-10-11 15:31:28 -05:00
Chris Roberts b9ea9a2ac2 Merge pull request #7887 from chrisroberts/guests/linux-detection
Guests/linux detection
2016-10-11 12:55:52 -07:00
Chris Roberts 9d61d7c61b Merge pull request #7818 from rswarts/vz7flavor
Add Virtuozzo Linux 7 to list of RHEL flavors
2016-10-11 10:35:20 -07:00
Chris Roberts d0549d6e11 guests/linux: Provide common linux detection style
Defines a common and generic linux detection strategy which can be
subclassed and easily reused by providing a custom detection constant.
2016-10-11 07:50:34 -07:00
Reto Gantenbein 6050b13f43 Make Debian guest detection more reliable
/etc/issue is far from being a reliable source for OS detection as it
can be changed by a user without affecting any OS functionality. As
newer Debian systems run systemd by default, check for /etc/os-release
and fallback to lsb_release for older Debian versions. Check #7625 for
a similar issue. Even lsb_release is not manatory, therefore keep the
current code of parsing /etc/issue to avoid regressions.
2016-10-11 07:49:35 -07:00
Gilles Cornu a55590b84f
provisioners/ansible_local: Change binary detection
- Remove `ansible-galaxy` detection, since this command was introduced
  in Ansible 1.4.2 (December 2013). Checking for `ansible-playbook`
  presence should therefore be enough for any "modern" Ansible setup.
- Look for the command defined by the new `playbook_command` option.

Related to GH-7881 and GH-7536
2016-10-10 23:24:19 +02:00
Gilles Cornu b1ddc98e17
Merge pull request #7881 (Add playbook_command option)
Note that error messages were not adapted, and only mention
a generic "Ansible Software" when executed commands are failing.
We assume that people using the `playbook_command` option are
advanced users that will know all the components to be considered.
2016-10-10 23:18:24 +02:00
Gilles Cornu 26e8bdc1f1
Merge pull request #7536 2016-10-10 23:03:00 +02:00
Chris Roberts 07ce1c6930 Merge pull request #7866 from chrisroberts/guest-linux/network-interfaces-sorting
guests/linux: Update network interface sorting implementation
2016-10-10 10:59:52 -07:00
Chris Roberts 7eb1091a71 Merge pull request #7874 from chrisroberts/enhancement/cast-box-version
config/vm: cast box version to string before string operations
2016-10-10 10:57:53 -07:00
Chris Roberts a8970281ce guests/linux: Properly sort interface name types
Add failing networking interface list sorting test with example
provided by #7883. Update sorting logic to properly handle different
types and differing array lengths.

Fixes #7883
2016-10-10 10:22:19 -07:00
Bjorn Brala 42efd5c198 Make the Virtual Hard Disks directory if importing from XML to keep it consistant across config types 2016-10-09 21:10:56 +02:00
Daniel Gonzalez 58f2b0c8c7 Make ansible-playbook command configurable
The ansible-playbook command is currently hardcoded for the ansible and
ansible_local provisioners. This patch adds the config option
playbook_command to allow the user to change the command.
2016-10-09 20:48:50 +02:00
Bjorn Brala 8744caebcf Small typo in options 2016-10-09 20:39:17 +02:00
Bjorn Brala 7b03bf335b Whitespace 2016-10-08 16:44:24 +02:00
Bjorn Brala debe50957b Refactor the import script to fully use Compare-VM for creating the new VM.
Implemented the differencing disk for vmcx.
This means the disk is now copied by Hyper-V (Powershell) instead of Ruby for new machines.
This does mean EFI Firmware now does work for machines since it is quite a feep copy. Compare-VM will report incompatibilities should they be found.
2016-10-08 16:38:42 +02:00
Chris Roberts d178631ff9 Generic white space strip from command strings 2016-10-07 17:30:27 -07:00
Chris Roberts 703513bd0f Revert "Fix incorrect ssh-config output when '--host' is defined"
This reverts commit c77326438b.
2016-10-07 16:50:12 -07:00
Chris Roberts bb60fdd790 Merge pull request #7877 from guessi/fix_7728_incorrect-ssh-config-output
Fix incorrect ssh-config output when '--host' is defined
2016-10-07 15:19:18 -07:00
Chris Roberts 33b13dffbe Merge pull request #7873 from markpeek/markpeek-photon-netmask
Fix typo (netmast => netmask) for Photon guest #7808
2016-10-07 15:15:26 -07:00
Mark Peek 4bf32e3f6d Fix typo (netmast => netmask) for Photon guest #7808 2016-10-07 12:32:21 -07:00
Bjorn Brala a77da314e5 Only check for .vmcx if there is no XML found to not risk breaking older vagrant boxes that added an XML file manually 2016-10-07 20:38:05 +02:00
guessi c77326438b Fix incorrect ssh-config output when '--host' is defined
Fixes: #7728
Signed-off-by: guessi <guessi@gmail.com>
2016-10-07 23:47:56 +08:00
Björn Brala 6ed612e93b Move package_setup_files to general lib to minimize code duplication 2016-10-07 17:31:15 +02:00
Chris Roberts 26b3a303d2 config/vm: cast box version to string before string operations 2016-10-06 16:16:59 -07:00
Chris Roberts 8291c56fd2 Merge pull request #7688 from hunterboerner/7597-docker-interactive-flag
Remove --interactive flag from Docker command
2016-10-06 15:41:58 -07:00
Chris Roberts b738aaac0f Merge pull request #7813 from rudineirk/fix-non-upstart-linux
Fix non upstart linux nfs mounts
2016-10-06 12:59:23 -07:00
Björn Brala a4d41d0a0e Move code for set-folders for packing VirtualBox to general 2016-10-06 15:07:13 +02:00
Bjorn Brala 5877e8fe22 Sart refactor duplicate classes 2016-10-06 08:55:59 +02:00
Bjorn Brala 8619267cd9 Fix getting mac address from the driver. 2016-10-06 08:29:05 +02:00
Bjorn Brala 5d0de9486e Remove some logging from the package action. 2016-10-06 08:28:52 +02:00
Theron Boerner 391c5be08e Remove --interactive flag from Docker command
See: GH-7597. Due to the childprocess gem setting STDIN to a pipe,
Docker will fail as it requires STDIN to be a TTY if run with
--interactive.
2016-10-05 14:38:20 -05:00
Bjorn Brala 0970a5a67b Generate metadata.json in root of package. 2016-10-05 14:42:46 +02:00
Bjorn Brala be2e9e79aa FIrst draft of packaging of Hyper-V boxes. Need to refactor the package_* files since right now they are copies of the virtualbox versions, might just put them in general. 2016-10-05 13:48:48 +02:00
Chris Roberts a384276431 Merge pull request #7751 from wakeful/fix-centos7-do-not-prompt-before-overwriting
Fix CentOS7 network config - do not prompt before overwriting
2016-10-04 17:31:42 -07:00
Chris Roberts e2b18fc65d guests/linux: Update network interface sorting implementation
Always pull ordered ethernet devices to the head of the list. Ensure
aliases are not included.
2016-10-04 17:25:00 -07:00
David Wittman 00c7b1e005
Fix minion_id config for salt provisioner
Changes introduced in #7207 removed the logic to handle the
`minion_id` configuration. This commit addresses that regression
by including the `--id #{@config.minion_id}` flag everywhere that
`--local` is used (as it had done before).

I'm not totally in love with the `get_masterless` abstraction here,
so if someone has a better suggestion I'll happily change it.

Fixes #7454
2016-10-04 16:46:36 -05:00
Bjorn Brala 133e2a7b0f Broke Path argument in mini refactor. 2016-10-04 20:06:10 +02:00
Bjorn Brala 2fc93277fd change argument to vm_config_file so it isn't the same as variable in powershell script. 2016-10-02 18:45:51 +02:00
Bjorn Brala 1ec1cf8177 Update Hyper-V import command and the driver to check for configuration type and call the correct import script. 2016-10-02 16:10:58 +02:00
Bjorn Brala b041c1955c Add support for vmcx files, new binary format for Hyper-V configurations. 2016-10-02 16:10:16 +02:00
Chris Roberts f72cd286c1 Merge pull request #7831 from mwrock/nano
Use the cmd shell to check winrm availability to fix `vagrant up --no-provision` on nano
2016-09-30 16:16:42 -07:00
Chris Roberts 2e6b23c8fd Merge pull request #7848 from chrisroberts/fix/eth-first-predictable
guests/linux: Place ethernet devices at start of device list
2016-09-30 14:50:08 -07:00
Chris Roberts 0300df09fb guests/linux: Update constant name, freeze constant values 2016-09-30 12:11:54 -07:00
Chris Roberts 6e6b35f1c5 Merge pull request #7712 from mwrock/executor
fix #7489 preventing winrm connection leakage
2016-09-30 09:10:42 -07:00
Chris Roberts 9f468d2626 guests/linux: Place ethernet devices at start of device list 2016-09-29 15:33:29 -07:00
Matt Wrock c5e1a6d8c0 use the cmd shell to check winrm availability 2016-09-26 14:07:11 -07:00
Rutger Swarts 2ecbc241c3 Add Virtuozzo Linux 7 to list of RHEL flavors 2016-09-23 10:45:16 +02:00
Gilles Cornu e8cf9bb168
provisioners/ansible: review pull request #7752
- Honour `ssh.proxy_command` setting (even when the Docker provider is
  used via a proxy host). Silly configurations may lead to silly
  behaviors, but let's apply the settings...
- Remove condition on `provider_config.connect_via_ssh`, which is
  a provider specific parameter (from vagrant-libvirt provider).
- Add a simple unit test
2016-09-21 23:40:20 +02:00
Dmitry Vasilets a1d78edaf8
changes after review 2016-09-21 23:40:15 +02:00
Dmitry Vasilets a943f67da1
support ansible for remote servers and vm 2016-09-21 23:39:43 +02:00
Rudinei Goi Roecker 8b8c961935 Fix non upstart linux nfs mounts 2016-09-20 17:57:54 -03:00
Alexander von Gluck IV f5622dbe96 plugins/guest: Fix a few typos for Haiku 2016-09-15 16:22:44 -05:00
Alexander von Gluck IV 31e7075830 plugins/guest: Add initial Haiku support
* Basic hostname configuration
2016-09-15 16:15:36 -05:00
AJ 2e723ea308 added general restart for network - to prevent IP address dropping on interfaces 2016-08-23 21:02:11 +01:00
AJ 1c4e7ee068 assuming a scenario - vagrant up -> power off -> vagrant up
vagrant will stuck on the network configuration

DEBUG ssh: stdout: mv: overwrite '/etc/sysconfig/network-scripts/ifcfg-eth0'?
DEBUG ssh: Sending SSH keep-alive...
2016-08-23 20:58:15 +01:00
Chris Roberts c59723e595 Merge pull request #7740 from chrisroberts/nfs/v4
Add NFSv4 warning and information
2016-08-19 10:19:34 -07:00
Chris Roberts a7537a6be0 Merge pull request #7726 from chrisroberts/fix/rsync-exclude
Ignore files excluded from sync on chown
2016-08-19 09:58:31 -07:00
Chris Roberts 5e44e308a5 Merge pull request #7725 from chrisroberts/fix/package-machine-dir
Machine data directory for base box package
2016-08-19 09:48:38 -07:00
Chris Roberts bbac718925 Add NFSv4 warning and information 2016-08-19 09:33:36 -07:00
Chris Roberts dd6ad2fbf3 guests/linux: only use effective group ID when appropriate 2016-08-17 06:53:26 -07:00
Chris Roberts f577ca3d23 commands/package: provide machine data directory for base box 2016-08-17 06:49:12 -07:00
Chris Roberts 185a7dfc2e guests/rsync do not chown files excluded from sync 2016-08-16 15:13:19 -07:00
Matt Wrock 64828f1ed3 fix #7489 preventing winrm connection leakage 2016-08-13 07:49:08 -07:00
Chris Roberts dd91269491 guests: Prevent ssh disconnect from causing error on halt 2016-08-12 13:25:39 -07:00
Chris Roberts ce3329e184 guests/linux: Always order discovered network interfaces 2016-08-12 10:31:41 -07:00
Chris Roberts 155c78ea93 communicators/ssh: Filter command stdout output 2016-08-11 13:26:56 -07:00
Chris Roberts 9e26e31a6b Add generated private key options to rsync command 2016-08-11 13:00:37 -07:00
Chris Roberts ee185f4b9e Set private_key_path and log_level within hash construction 2016-08-11 12:13:11 -07:00
Chris Roberts 7ba4f2087b Include LogLevel option within ssh command setup 2016-08-11 12:12:45 -07:00
Zack Train cb70749bd8 redux of pr 7398 for ssh-agent key fix 2016-08-11 11:48:10 -07:00
Chris Roberts 6cdab917de guests/dragonflybsd: add detection for DragonFly BSD 2016-08-10 09:14:08 -07:00
Chris Roberts 571659a5d1 guests/openbsd: include -h option on shutdown
For OpenBSD versions prior to 5.7 the `-h` option _must_ be provided
to the `shutdown` command when `-p` is used. Later versions no longer
require the `-h` option but still allow it for compatibility.

http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/sbin/shutdown/shutdown.8?rev=1.40&content-type=text/x-cvsweb-markup
http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/sbin/shutdown/shutdown.c?rev=1.40&content-type=text/x-cvsweb-markup
2016-08-10 09:14:08 -07:00
Chris Roberts 666d5e6391 guests/bsd: remove darwin matching 2016-08-10 09:10:56 -07:00
Charlie Sharpsteen 4144b45122 Fix RDP connections on OS X
Changes introduced in 982af05 caused the RDP configuration file to be written
with all settings on one line instead of one setting per line. The Microsoft
Remote Desktop client for OS X rejects these configuration files as being
malformed. This patch restores the configuration to one line per setting and
adds tests to guard against regression.
2016-08-09 14:04:50 -07:00
tfanning d350fd0d28 Resolve whitespace 2016-07-26 13:56:20 +01:00
tfanning 344fc0ea7b Implement auto_start_action and auto_stop_action 2016-07-26 13:41:01 +01:00
Jose Luis Duran 820607bbf6 Fix `authorized_keys` permissions for BSDs
This is an extension of a6760dd8e7,
applied to BSD guests.

Related to #7610
2016-07-25 18:25:58 -03:00
Seth Vargo a732b355d2 Merge pull request #7632 from mitchellh/sethvargo/ubuntu_detect
guests/ubuntu: Revert detection
2016-07-23 15:18:53 -04:00
Seth Vargo 00fa49191d
guests/ubuntu: Revert detection
- Semi-reverts GH-7524
- Fixes GH-7625
2016-07-23 15:02:11 -04:00
Alexander Kurilo 73cc633b02
Detect NFS server by service name on Arch
Fixes #7629.
nfs-server.service seems to load kernel modules it needs itself, while nfsd appears in `/proc/filesystems` only after the kernel module has been loaded, so vagrant fails to detect NFS server until it's started first time after the system has booted. This checks if the NFS service actually exists and hopes that it'll figure the stuff out itself.

`list-unit-files` is utilized rather than `list-units` because systemd seems to not list units that are disabled: https://lists.fedoraproject.org/pipermail/devel/2011-November/159117.html
2016-07-23 13:09:23 +03:00
hendrenj 855643e9a5 s/bsd/linux/ 2016-07-19 11:45:03 -06:00
hendrenj a6760dd8e7 fixes #7610 2016-07-19 11:22:35 -06:00
Seth Vargo 571747be5e
Ensure space after last arg 2016-07-18 23:39:08 -04:00
Colin Shea b31b240c8c
Support installing synced folder clients on arch 2016-07-18 22:33:04 -04:00
Seth Vargo 8a5cf3b81a Merge pull request #7012 from penguincoder/rsync-command-quoting
translate windows path
2016-07-18 22:05:39 -04:00
Seth Vargo 30692fc857 Merge pull request #7524 from nishidayuya/fix_ubuntu_guest_detection
A more reliable way to detect Ubuntu
2016-07-18 22:01:11 -04:00
Seth Vargo 7868421a21
guests/openbsd: Fix hostname setting 2016-07-18 21:13:00 -04:00
Seth Vargo 1e0d7bb652
guests/ubuntu: Use debians change_host_name functionality 2016-07-18 21:13:00 -04:00
Seth Vargo 7f1947fec2
folders/rsync: Shellescape guest paths
This allows users to have spaces or other special characters in
destination paths on the guest.
2016-07-18 21:13:00 -04:00
Seth Vargo 1c0d0b8b9d
guests/linux: Style update for choose_addressable_ip 2016-07-18 21:12:59 -04:00
Seth Vargo e2becda89d
guests/gentoo: Use shared cap for listing network interfaces 2016-07-18 21:12:59 -04:00
Seth Vargo 8fe47b79c2
guests/gentoo: Exit on hostname error 2016-07-18 21:12:59 -04:00
Seth Vargo 72dcf610f7
guests/freebsd: Escape guest path in rsync folders 2016-07-18 21:12:59 -04:00
Seth Vargo 3b2ffae400
guests/bsd: Print a very descriptive error when mounting vbox folders
BSD-based guests do not support VirtualBox shared folders. This is a
common source of confusion in Vagrant. This new error clearly explains
that this is not a bug in Vagrant and provides instructions on how to 
disable them.
2016-07-18 21:12:58 -04:00
Seth Vargo c4a0a86ee0
guests/debian: Do not restart networking
Restarting networking causes Vagrant to disconnect and fail.
2016-07-18 21:12:58 -04:00
Seth Vargo d1a071d403
guests/darwin: Shellescape guest path for rsync 2016-07-18 21:12:58 -04:00
Seth Vargo 619c7a5b26
guests/darwin: Exit on error setting hostname 2016-07-18 21:12:58 -04:00
Seth Vargo 7e88266999
guests/linux: Properly escape and retry vbox shared folder mounting 2016-07-18 21:12:57 -04:00
Seth Vargo 4aaa600bd6
guests/linux: Centralize public_key logic 2016-07-18 21:12:57 -04:00
Seth Vargo cb2f3a697f
guests/debian: Do not check if rsync is installed before installing
This is already done via the rsync_installed capability.
2016-07-18 21:12:57 -04:00
Seth Vargo 76bab1932e
guests/debian: Use set -e when configuring networks 2016-07-18 21:12:57 -04:00
Seth Vargo 7a7256b3ab
guests/debian: Exit on error when configuring hostname 2016-07-18 21:12:56 -04:00
Seth Vargo 9134172ce6
guests/debian: Move NFS into same file 2016-07-18 21:12:56 -04:00
Seth Vargo 0af02fc78c
guests/atomic: Ensure error exit when setting hostname 2016-07-18 21:12:56 -04:00
Seth Vargo ccc40eb19d
guests/arch: compute netmask
Arch expects /24 for netmask, but users usually specify as a netmask
block like 255.255.255.0. This automatically converts it.
2016-07-18 21:12:56 -04:00
Seth Vargo 627091de35
guests/linux: reorg 2016-07-18 21:12:55 -04:00
Seth Vargo 9ea13105c0
guests/arch: Ensure exit on configure networks fail 2016-07-18 21:12:55 -04:00
Seth Vargo e69211ab22
guests/arch: Add NFS capabilities 2016-07-18 21:12:55 -04:00
Seth Vargo cf9a8e3c0a
guests/arch: Ensure exit on error setting hostname 2016-07-18 21:12:55 -04:00
Seth Vargo 084d62b5a6
guests/fedora: Move as a child of redhat
Fedora should have been a child of redhat for awhile now...
2016-07-18 21:12:54 -04:00
Seth Vargo 336cb3319c
guests/rhel: Use FQDN for hostname
Refs: https://lukas.zapletalovi.com/2011/12/setting-hostname-properly-in-fedora-and.html
2016-07-18 21:12:54 -04:00
Seth Vargo cf91bcf029
guests: Always search for FQDN without sudo 2016-07-18 21:12:54 -04:00
Seth Vargo 8f3b6511f2
guests/linux: Add shared cap for listing network interfaces 2016-07-18 21:12:54 -04:00
Seth Vargo b621cc44fb
guests/rhel: Switch to predicable network interface names 2016-07-18 21:12:53 -04:00
Seth Vargo 4664930e06
guests/ubuntu: Use short hostname
Fixes GH-7488
2016-07-18 21:12:53 -04:00
Seth Vargo caafb936f0
guests/gentoo: Use predictable network interface names 2016-07-18 21:12:53 -04:00
Seth Vargo ea9b28f9b6
guests/freebsd: Check FQDN for hostname 2016-07-18 21:12:52 -04:00
Seth Vargo 57774601d9
guests/fedora: Fix indentation on configure hostname 2016-07-18 21:12:52 -04:00
Seth Vargo 87d2b7fec8
guests/debian: Set hostname to short value
Refs GH-7488
2016-07-18 21:12:52 -04:00
Seth Vargo 5a372a9942
guests/bsd: Do not use -h to shutdown 2016-07-18 21:12:52 -04:00
Seth Vargo bbcddb6499
guests/atomic: Search for FQDN hostname 2016-07-18 21:12:51 -04:00
Seth Vargo 10b12ce393
guests/arch: Search for FQDN hostname 2016-07-18 21:12:51 -04:00
Seth Vargo 3eebff5bf3
guests/funtoo: Behave like a gentoo guest 2016-07-18 21:12:51 -04:00
Indrek Ardel b57b0e0d48 Add VirtualBox 5.1 driver 2016-07-13 15:34:25 +03:00
Hanno Heinrichs 10775a3b4a More robust Ansible detection for local Ansible provisioner 2016-06-30 12:58:36 +02:00
Yuya.Nishida 05782f1d0e A more reliable way to detect Ubuntu
lsb_release command is included in lsb-release package. Sometimes this is
not installed; ex: Docker official Ubuntu image.
/etc/os-release is included in base-files package,
so this is more reliable than lsb_release.
2016-06-28 01:57:35 +09:00
Seth Vargo 49f2a0e7e9 Merge pull request #7487 from codekaizen/master
Fixing version check and catch statement in get_vm_status
2016-06-19 17:15:44 -04:00
Seth Vargo bfc951ee20 Merge pull request #7492 from mitchellh/sethvargo/linux_nfs
guests/linux: Ensure NFS retries when mounting
2016-06-19 14:39:39 -04:00
Seth Vargo 851eff1288
guests/linux: Ensure NFS retries when mounting
Fixes GH-7443
2016-06-19 14:34:33 -04:00
Seth Vargo 177b7784dd
guests/darwin: Allow ipv6 static networks 2016-06-19 12:01:52 -04:00
Rory Plaire d3859a33aa Fixing version check and catch statement in get_vm_status
Use the version of Hyper-V instead of Powershell to determine which
exception is thrown by Get-VM. Also fixing an invalid catch statement,
since Powershell can not use variables to match thrown exceptions in
catch.
2016-06-18 17:13:24 -07:00
Seth Vargo 2cbc819298 Merge pull request #7484 from mitchellh/sethvargo/bsd_halt
guests/bsd: Centralize logic for halting guests
2016-06-18 15:12:09 -04:00
Seth Vargo 07e6d0e707
guests/bsd: Centralize logic for halting guests 2016-06-18 15:06:20 -04:00
Seth Vargo 3f27af7e95
core: Provide a way to globally disable box update checking
This adds a new environmental variable `VAGRANT_BOX_UPDATE_CHECK_DISABLE`,
which instructs Vagrant to not check for box updates when running
regular Vagrant commands. This behaves the same as the existing
`config.vm.box_update_check` configuration option, but can be set
globally. Vagrantfile-supplied options will take precedence.

Fixes GH-7479
2016-06-18 14:46:46 -04:00
Satoshi Matsumoto de9abc8f72
guests/redhat: fix network configuration in CentOS 5
ip command is not on PATH by default in CentOS 5 so call it with the full path.
2016-06-18 14:14:25 -04:00
Seth Vargo 079acb42cd
guests/bsd: Centralize logic for public key management 2016-06-17 21:36:28 -04:00