diff options
author | Toshio Kuratomi <a.badger@gmail.com> | 2017-02-01 14:20:22 -0800 |
---|---|---|
committer | Toshio Kuratomi <a.badger@gmail.com> | 2017-02-02 13:44:55 -0800 |
commit | a0104cfe81f00fe6fb07b0ea8bc5c6d43d68f255 (patch) | |
tree | 85f8541bb7c22d49c74c02ea75a466685543df1e | |
parent | 5f5d1431948c3b093449c0deaf59bf7e064e51b7 (diff) | |
download | ansible-a0104cfe81f00fe6fb07b0ea8bc5c6d43d68f255.tar.gz |
Do not substitute ssh_exeuctable until we need to
We need to use ssh_executable instead of hardcoding ssh in the command
we run but we need to use "ssh" when we lookup the value of the
{command}_extra_args variable. Do this by leaving binary as "ssh" and
only expanding when we place it into b_command.
Fixes #20862
(cherry picked from commit 62ba0840031441d8794a4cc2a67f78357680627b)
-rw-r--r-- | lib/ansible/plugins/connection/ssh.py | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/lib/ansible/plugins/connection/ssh.py b/lib/ansible/plugins/connection/ssh.py index 9eced8120b..995197b7e5 100644 --- a/lib/ansible/plugins/connection/ssh.py +++ b/lib/ansible/plugins/connection/ssh.py @@ -143,7 +143,10 @@ class Connection(ConnectionBase): self.sshpass_pipe = os.pipe() b_command += [b'sshpass', b'-d' + to_bytes(self.sshpass_pipe[0], nonstring='simplerepr', errors='surrogate_or_strict')] - b_command += [to_bytes(binary, errors='surrogate_or_strict')] + if binary == 'ssh': + b_command += [to_bytes(self._play_context.ssh_executable, errors='surrogate_or_strict')] + else: + b_command += [to_bytes(binary, errors='surrogate_or_strict')] # # Next, additional arguments based on the configuration. @@ -587,13 +590,10 @@ class Connection(ConnectionBase): # data into /usr/bin/python inside a tty automatically invokes the # python interactive-mode but the modules are not compatible with the # interactive-mode ("unexpected indent" mainly because of empty lines) - - ssh_executable = self._play_context.ssh_executable - if not in_data and sudoable: - args = (ssh_executable, '-tt', self.host, cmd) + args = ('ssh', '-tt', self.host, cmd) else: - args = (ssh_executable, self.host, cmd) + args = ('ssh', self.host, cmd) cmd = self._build_command(*args) (returncode, stdout, stderr) = self._run(cmd, in_data, sudoable=sudoable) @@ -726,7 +726,7 @@ class Connection(ConnectionBase): # temporarily disabled as we are forced to currently close connections after every task because of winrm # if self._connected and self._persistent: # ssh_executable = self._play_context.ssh_executable - # cmd = self._build_command(ssh_executable, '-O', 'stop', self.host) + # cmd = self._build_command('ssh', '-O', 'stop', self.host) # # cmd = map(to_bytes, cmd) # p = subprocess.Popen(cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE) |