-
Notifications
You must be signed in to change notification settings - Fork 4.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ansible Provisioner: Support Guidelines for ansible-playbook options #3396
Comments
I think, as long as there's a clear listing of what's supported and what's not supported, then support requests (and frustrations in general with the |
👍 |
When `--connection` argument is not specified, Ansible will use the 'smart' mode, which can either use `ssh` or `paramiko` transports, depending of the version of OpenSSH available. If OpenSSH version is new enough to support ControlPersist technology, `ssh` will be used. See also http://docs.ansible.com/intro_configuration.html#transport. In order to support some advanced features of Vagrant (e.g. multiple ssh private key identities or ssh forwarding), the Ansible provisioner already must force `ssh` connection mode. Having to deal with the possible fallback to `paramiko` increase the burden of special cases that Ansible provisioner must handle, without any added value, as Vagrant is based on OpenSSH and its users are usually using modern operating systems. With this change, the Ansible provisioner will officially only support `ssh`. It will still be possible to switch to another connection mode via `raw_arguments`, but it will breach the "contract", and no (community) support can be expected in such use case. ref #3900, #3396
- force `--connection=ssh` (any other modes like paramiko or smart are not supported) - give the highest priority to `raw_arguments` for sake of simplicity (in usage, in code and in documentation) - fix position of the `--limit` argument (the generated inventory could be shadowed by `raw_arguments`, while ansible.limit was able to override `raw_arguments` ref #3396
This issue will be closed with the release of Vagrant 1.7. I'll put a check-list summary soon, and would love to get your feedbacks. |
@gildegoma close? |
For Support Questions:
For Feature Requests: To better drive our maintenance decision, I propose to use the following "guide lines":
To illustrate the above guidelines, here are some examples of decisions we took:
I do hope taht the above stuff is clear enough, and I close this issue. But please feel free to add your comments as "guidelines" are living documents :) |
With current open issues like
paramiko
mode?vagrant ssh
#3900: tricky to be potentially ready for smart mode (aka paramiko or ssh)ssh
is needed by Ansible provisioner with Docker provider #4071, ssh-forwarding, multiple ssh identitiesssh
in a large majority of vagrant setups--su-user
)I think it is now necessary to clarify what the Ansible provisioner can/should offer, according to following facts:
ansible-playbook
oransible
commands against the Vagrant VMs.ansible.raw_arguments
,ansible.raw_ssh_args
and an Ansible configuration file (e.g. localansible.cfg
) can be easily used to customize a lot of things.The idea is here to establish a simple check-list to take decision about adding (or removing) support of provisioner options, being at maximum "user friendly and backward compatible". Feel free to bring your thoughts!
The text was updated successfully, but these errors were encountered: