summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Martz <matt@sivel.net>2022-09-29 18:56:13 -0500
committerGitHub <noreply@github.com>2022-09-29 16:56:13 -0700
commit1a7f3b403c9f001db6a52e2f348000e2cadb1c83 (patch)
tree6b85bd3294c2270b85126818ae93ed67ccbdef97
parent45abd5b685104d4fa0d5a6501456b5a5372dfeef (diff)
downloadansible-1a7f3b403c9f001db6a52e2f348000e2cadb1c83.tar.gz
[stable-2.13] Add ssh_args and friends back, add var for proxy_command (#78826) (#78837)
* [stable-2.13] Add ssh_args and friends back, add var for proxy_command (#78826) Fixes #78750 (cherry picked from commit 1b47def) Co-authored-by: Matt Martz <matt@sivel.net> * Remove non-backportable changes (cherry picked from commit ba2938a388c065da7897aceb2d0890a656957cd3)
-rw-r--r--changelogs/fragments/78750-paramiko-ssh-args-compat.yml3
-rw-r--r--lib/ansible/plugins/connection/paramiko_ssh.py47
2 files changed, 46 insertions, 4 deletions
diff --git a/changelogs/fragments/78750-paramiko-ssh-args-compat.yml b/changelogs/fragments/78750-paramiko-ssh-args-compat.yml
new file mode 100644
index 0000000000..6c45ba8d94
--- /dev/null
+++ b/changelogs/fragments/78750-paramiko-ssh-args-compat.yml
@@ -0,0 +1,3 @@
+bugfixes:
+- paramiko - Add back support for ``ssh_args``, ``ssh_common_args``, and ``ssh_extra_args`` for parsing the ``ProxyCommand``
+ (https://github.com/ansible/ansible/issues/78750)
diff --git a/lib/ansible/plugins/connection/paramiko_ssh.py b/lib/ansible/plugins/connection/paramiko_ssh.py
index 8e75adfa0e..fad2d7a242 100644
--- a/lib/ansible/plugins/connection/paramiko_ssh.py
+++ b/lib/ansible/plugins/connection/paramiko_ssh.py
@@ -79,6 +79,45 @@ DOCUMENTATION = """
env: [{name: ANSIBLE_PARAMIKO_PROXY_COMMAND}]
ini:
- {key: proxy_command, section: paramiko_connection}
+ ssh_args:
+ description: Only used in parsing ProxyCommand for use in this plugin.
+ default: ''
+ ini:
+ - section: 'ssh_connection'
+ key: 'ssh_args'
+ env:
+ - name: ANSIBLE_SSH_ARGS
+ vars:
+ - name: ansible_ssh_args
+ version_added: '2.7'
+ ssh_common_args:
+ description: Only used in parsing ProxyCommand for use in this plugin.
+ ini:
+ - section: 'ssh_connection'
+ key: 'ssh_common_args'
+ version_added: '2.7'
+ env:
+ - name: ANSIBLE_SSH_COMMON_ARGS
+ version_added: '2.7'
+ vars:
+ - name: ansible_ssh_common_args
+ cli:
+ - name: ssh_common_args
+ default: ''
+ ssh_extra_args:
+ description: Only used in parsing ProxyCommand for use in this plugin.
+ vars:
+ - name: ansible_ssh_extra_args
+ env:
+ - name: ANSIBLE_SSH_EXTRA_ARGS
+ version_added: '2.7'
+ ini:
+ - key: ssh_extra_args
+ section: ssh_connection
+ version_added: '2.7'
+ cli:
+ - name: ssh_extra_args
+ default: ''
pty:
default: True
description: 'SUDO usually requires a PTY, True to give a PTY and False to not give a PTY.'
@@ -254,9 +293,9 @@ class Connection(ConnectionBase):
proxy_command = None
# Parse ansible_ssh_common_args, specifically looking for ProxyCommand
ssh_args = [
- getattr(self._play_context, 'ssh_extra_args', '') or '',
- getattr(self._play_context, 'ssh_common_args', '') or '',
- getattr(self._play_context, 'ssh_args', '') or '',
+ self.get_option('ssh_extra_args'),
+ self.get_option('ssh_common_args'),
+ self.get_option('ssh_args', ''),
]
args = self._split_ssh_args(' '.join(ssh_args))
@@ -274,7 +313,7 @@ class Connection(ConnectionBase):
if proxy_command:
break
- proxy_command = proxy_command or self.get_option('proxy_command')
+ proxy_command = self.get_option('proxy_command') or proxy_command
sock_kwarg = {}
if proxy_command: