fix ssh cli defaults (#75245)

* fix ssh cli defaults

  fixes #75221
pull/75318/head
Brian Coca 3 years ago committed by GitHub
parent 4d78b58540
commit e5a2fe4c41
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -0,0 +1,2 @@
bugfixes:
- cli defaults for ssh args set to None as '' was bypassing normal default.

@ -256,13 +256,13 @@ def add_connect_options(parser):
help="override the connection timeout in seconds (default=%s)" % C.DEFAULT_TIMEOUT)
# ssh only
connect_group.add_argument('--ssh-common-args', default='', dest='ssh_common_args',
connect_group.add_argument('--ssh-common-args', default=None, dest='ssh_common_args',
help="specify common arguments to pass to sftp/scp/ssh (e.g. ProxyCommand)")
connect_group.add_argument('--sftp-extra-args', default='', dest='sftp_extra_args',
connect_group.add_argument('--sftp-extra-args', default=None, dest='sftp_extra_args',
help="specify extra arguments to pass to sftp only (e.g. -f, -l)")
connect_group.add_argument('--scp-extra-args', default='', dest='scp_extra_args',
connect_group.add_argument('--scp-extra-args', default=None, dest='scp_extra_args',
help="specify extra arguments to pass to scp only (e.g. -l)")
connect_group.add_argument('--ssh-extra-args', default='', dest='ssh_extra_args',
connect_group.add_argument('--ssh-extra-args', default=None, dest='ssh_extra_args',
help="specify extra arguments to pass to ssh only (e.g. -R)")
parser.add_argument_group(connect_group)

@ -93,6 +93,7 @@ DOCUMENTATION = '''
- name: ansible_ssh_common_args
cli:
- name: ssh_common_args
default: ''
ssh_executable:
default: ssh
description:
@ -142,6 +143,7 @@ DOCUMENTATION = '''
version_added: '2.7'
cli:
- name: scp_extra_args
default: ''
sftp_extra_args:
description: Extra exclusive to the ``sftp`` CLI
vars:
@ -155,6 +157,7 @@ DOCUMENTATION = '''
version_added: '2.7'
cli:
- name: sftp_extra_args
default: ''
ssh_extra_args:
description: Extra exclusive to the 'ssh' CLI
vars:
@ -168,6 +171,7 @@ DOCUMENTATION = '''
version_added: '2.7'
cli:
- name: ssh_extra_args
default: ''
reconnection_retries:
description: Number of attempts to connect.
default: 0

@ -68,3 +68,6 @@ ANSIBLE_SSH_TRANSFER_METHOD=piped ./posix.sh "$@"
# test config defaults override
ansible-playbook check_ssh_defaults.yml "$@" -i test_connection.inventory
# ensure we can load from ini cfg
ANSIBLE_CONFIG=./test_ssh_defaults.cfg ansible-playbook verify_config.yml "$@"

@ -0,0 +1,5 @@
[ssh_connection]
ssh_common_args=fromconfig
ssh_extra_args=fromconfig
scp_extra_args=fromconfig
sftp_extra_args=fromconfig

@ -0,0 +1,21 @@
- hosts: localhost
gather_facts: false
vars:
ssh_configs:
- ssh_common_args
- ssh_extra_args
- sftp_extra_args
- scp_extra_args
tasks:
- debug:
msg: '{{item ~ ": " ~ lookup("config", item, plugin_type="connection", plugin_name="ssh")}}'
verbosity: 3
loop: '{{ssh_configs}}'
tags: [ configfile ]
- name: check config from file
assert:
that:
- 'lookup("config", item, plugin_type="connection", plugin_name="ssh") == "fromconfig"'
loop: '{{ssh_configs}}'
tags: [ configfile ]
Loading…
Cancel
Save