summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Martz <matt@sivel.net>2022-09-29 18:55:11 -0500
committerGitHub <noreply@github.com>2022-09-29 16:55:11 -0700
commit351fa03bc9612033b0dfe9442045578398dd7ab7 (patch)
tree5de76522d6d798c0371b1f97a39867570d218188
parent0d68ce2efb71eaf4f5c9f402670f79e9c80a52a3 (diff)
downloadansible-351fa03bc9612033b0dfe9442045578398dd7ab7.tar.gz
[stable-2.12] Add ssh_args and friends back, add var for proxy_command (#78826) (#78838)
* [stable-2.12] 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 2436213594..e394694955 100644
--- a/lib/ansible/plugins/connection/paramiko_ssh.py
+++ b/lib/ansible/plugins/connection/paramiko_ssh.py
@@ -76,6 +76,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: 'TODO: write it'
@@ -253,9 +292,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))
@@ -273,7 +312,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: