dont specify default for port, allow ssh/config (#74526)
* dont specify default for port, allow ssh/config also added general note on how defaults work. Co-authored-by: Abhijeet Kasurde <akasurde@redhat.com> Co-authored-by: Sam Doran <sdoran@redhat.com>
This commit is contained in:
parent
d101009688
commit
30912b6a47
5 changed files with 39 additions and 1 deletions
2
changelogs/fragments/ssh_port_default_fix.yml
Normal file
2
changelogs/fragments/ssh_port_default_fix.yml
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
bugfixes:
|
||||||
|
- Remove 'default' from ssh plugin as we want to rely on default from ssh itself or ssh/config.
|
|
@ -19,6 +19,9 @@ DOCUMENTATION = '''
|
||||||
extends_documentation_fragment:
|
extends_documentation_fragment:
|
||||||
- connection_pipelining
|
- connection_pipelining
|
||||||
version_added: historical
|
version_added: historical
|
||||||
|
notes:
|
||||||
|
- Many options default to 'None' here but that only means we don't override the ssh tool's defaults and/or configuration.
|
||||||
|
For example, if you specify the port in this plugin it will override any C(Port) entry in your C(.ssh/config).
|
||||||
options:
|
options:
|
||||||
host:
|
host:
|
||||||
description: Hostname/ip to connect to.
|
description: Hostname/ip to connect to.
|
||||||
|
@ -181,7 +184,6 @@ DOCUMENTATION = '''
|
||||||
port:
|
port:
|
||||||
description: Remote port to connect to.
|
description: Remote port to connect to.
|
||||||
type: int
|
type: int
|
||||||
default: 22
|
|
||||||
ini:
|
ini:
|
||||||
- section: defaults
|
- section: defaults
|
||||||
key: remote_port
|
key: remote_port
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
- hosts: ssh
|
||||||
|
gather_facts: false
|
||||||
|
vars:
|
||||||
|
ansible_connection: ssh
|
||||||
|
ansible_ssh_timeout: 10
|
||||||
|
tasks:
|
||||||
|
- name: contain the maddness
|
||||||
|
block:
|
||||||
|
- name: test all is good
|
||||||
|
ping:
|
||||||
|
|
||||||
|
- name: start the fun
|
||||||
|
meta: reset_connection
|
||||||
|
|
||||||
|
- name: now test we can use wrong port from ssh/config
|
||||||
|
ping:
|
||||||
|
ignore_unreachable: True
|
||||||
|
vars:
|
||||||
|
ansible_ssh_args: "-F {{playbook_dir}}/files/port_overrride_ssh.cfg"
|
||||||
|
register: expected
|
||||||
|
|
||||||
|
- name: check all is as expected
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- expected['unreachable']|bool
|
||||||
|
- "'2222' in expected['msg']"
|
||||||
|
always:
|
||||||
|
- name: make sure we don't cache the bad connection
|
||||||
|
meta: reset_connection
|
|
@ -0,0 +1,2 @@
|
||||||
|
Host *
|
||||||
|
Port 2222
|
|
@ -65,3 +65,6 @@ fi
|
||||||
ANSIBLE_SCP_IF_SSH=true ./posix.sh "$@" "${scp_args[@]}"
|
ANSIBLE_SCP_IF_SSH=true ./posix.sh "$@" "${scp_args[@]}"
|
||||||
# piped
|
# piped
|
||||||
ANSIBLE_SSH_TRANSFER_METHOD=piped ./posix.sh "$@"
|
ANSIBLE_SSH_TRANSFER_METHOD=piped ./posix.sh "$@"
|
||||||
|
|
||||||
|
# test config defaults override
|
||||||
|
ansible-playbook check_ssh_defaults.yml "$@" -i test_connection.inventory
|
||||||
|
|
Loading…
Reference in a new issue