Skip to content

Commit

Permalink
dont specify default for port, allow ssh/config (#74526)
Browse files Browse the repository at this point in the history
* 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>
  • Loading branch information
3 people committed May 4, 2021
1 parent d101009 commit 30912b6
Show file tree
Hide file tree
Showing 5 changed files with 39 additions and 1 deletion.
2 changes: 2 additions & 0 deletions changelogs/fragments/ssh_port_default_fix.yml
@@ -0,0 +1,2 @@
bugfixes:
- Remove 'default' from ssh plugin as we want to rely on default from ssh itself or ssh/config.
4 changes: 3 additions & 1 deletion lib/ansible/plugins/connection/ssh.py
Expand Up @@ -19,6 +19,9 @@
extends_documentation_fragment:
- connection_pipelining
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:
host:
description: Hostname/ip to connect to.
Expand Down Expand Up @@ -181,7 +184,6 @@
port:
description: Remote port to connect to.
type: int
default: 22
ini:
- section: defaults
key: remote_port
Expand Down
29 changes: 29 additions & 0 deletions test/integration/targets/connection_ssh/check_ssh_defaults.yml
@@ -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
3 changes: 3 additions & 0 deletions test/integration/targets/connection_ssh/runme.sh
Expand Up @@ -65,3 +65,6 @@ fi
ANSIBLE_SCP_IF_SSH=true ./posix.sh "$@" "${scp_args[@]}"
# piped
ANSIBLE_SSH_TRANSFER_METHOD=piped ./posix.sh "$@"

# test config defaults override
ansible-playbook check_ssh_defaults.yml "$@" -i test_connection.inventory

0 comments on commit 30912b6

Please sign in to comment.