Commit Graph

1080 Commits

Author SHA1 Message Date
Jonathan LaBroad 56861296fa Added tests and validation for python_version parameter 2017-10-05 06:25:36 -04:00
Jonathan LaBroad 3524eb9ef4 Merge remote-tracking branch 'upstream/master' 2017-10-04 14:59:57 -04:00
bjorn 6fb697ee32 Add auto_start_action and auto_stop_action to docs. 2017-10-04 10:09:15 +02:00
Chris Roberts 2355936291 Update documentation link 2017-09-22 16:31:06 -07:00
Jordan Danford de16f56b45 Fix stray backquote in "Vagrantfile / SSH Settings" section of docs 2017-09-20 09:37:31 -07:00
Jonathan LaBroad 6f53c3991c Merge remote-tracking branch 'upstream/master' 2017-09-11 09:15:22 -04:00
Chris Roberts 8610578d8d Update vagrant website version to 2.0.0 2017-09-07 07:46:51 -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
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
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 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 270618284c
docs/ansible: Fix an internal hyperlink
Fixing a typo made in 073898046542323eb11c2e129f37fa558ae201e1,
after getting the confirmation that all the Vagrant docs will continue
to use full path for internal links (for the moment).

[ci skip]
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 e2621a42fc
docs/ansible: Align the "warn/info" notices style
Motivated by the 4d546a58e1243168f58e20ca53cab71b31e44ae9 changes.
2017-09-06 17:12:29 +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
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
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 cec589ecd9 Updating documentation 2017-08-29 13:17:56 -04:00
Chris Roberts d98f858d9c Update vagrant website version to 1.9.8 2017-08-23 12:11:24 -07:00
Gilles Cornu c3f0b1c1b2 Ansible Docs: Fix headers and indentation
Align the headers style and wording in the intro page.

[ci skip]
2017-08-22 19:18:32 +02:00
Gilles Cornu e436f53fe9 Ansible Docs: Fix a typo in Markdown indentation
[ci skip]
2017-08-22 07:54:00 +02: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 dce71a5a27 Merge pull request #8892 from StephenOrJames/patch-1
Remove extra shell prompt
2017-08-21 14:57:31 -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
Justin Campbell d014cdac65 website: Fix mailto link 2017-08-16 17:21:56 -04:00
Justin Campbell 9db1c4b438 website: Add link to Vagrant Cloud docs source 2017-08-16 16:29:27 -04:00
Justin Campbell 6ddc418947 website: Add support link to index 2017-08-16 16:23:23 -04:00
Justin Campbell d920a4fe46 website: Update support email address 2017-08-16 16:20:35 -04:00
Justin Campbell 04586e1ec0 website: Add link to account migration page 2017-08-16 16:13:22 -04:00
Stephen James eaca868a76 Remove extra shell prompt 2017-08-16 01:12:28 -04:00
hvle 8086f4b71a typo 2017-08-12 22:58:12 +02:00
Chris Roberts c285e51bca Merge pull request #8847 from mitchellh/sethvargo/remove_people
Remove people from community section
2017-08-09 10:39:14 -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
Seth Vargo b409ea90fe
Update deploy process 2017-08-02 14:13:58 -04:00
Seth Vargo 4323ba5c73
Remove people from community section
This is going to be replaced with dynamic content from our CMS in the
future, but we agreed to remove it in the interim.
2017-08-02 13:51:42 -04:00
Chris Roberts 5817cef233 Update docs to properly name Vagrant Cloud 2017-07-31 16:33:18 -07:00
Chris Roberts d06fbb845b Update documentation to include more environment variable information 2017-07-26 15:30:41 -07:00
Ilia Liachin 142c086a2f Update docker.html.md
Docker now supports Windows
2017-07-24 23:07:41 +02:00
Alvaro Miranda Aguilera cc381a0f6b update per review 2017-07-20 22:37:48 +02:00
Alvaro Miranda Aguilera 591670d8a5 add note about groups for sudoers 2017-07-20 20:33:47 +02:00
TrueGit 49522f97ce Fix minor typo in website documentation 2017-07-20 12:51:46 -04:00
Óscar García Amor d0a3823fe8 Docs: fix path of Vagrant location for OSX 2017-07-08 17:03:06 +02:00
Brian Cain df62f27e27 Update vagrant website version to 1.9.7 2017-07-07 16:22:16 -07:00
Chris Roberts bcc09e10e6 Make upload directory for winssh communicator configurable
Fixes #8731
2017-07-07 11:04:37 -07:00
Chris Roberts e4b6ac70a6 Add `VAGRANT_PREFERRED_PROVIDERS` to environment variables documentation page 2017-07-06 12:41:16 -07:00
Chris Roberts d0b5a8f76c Merge pull request #8750 from briancain/maint/fix-typo
Fix rsync-auto typo
2017-07-05 15:24:32 -07:00
Letla Fox 3664f527ec Fix typo in docs
- surpress -> suppress
2017-07-05 06:45:50 +09:00