Clean a bit more the ssh_args configuration

If someone add ssh_args = " " to his .ansible.cfg, it will result into
strange failure later :

    <server.example.org> ESTABLISH CONNECTION FOR USER: misc
    <server.example.org> REMOTE_MODULE ping
    <server.example.org> EXEC ['ssh', '-C', '-tt', '-q', ' ', '-o', 'KbdInteractiveAuthentication=no',
    '-o', 'PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey', '-o', 'PasswordAuthentication=no',
    '-o', 'ConnectTimeout=10', 'server.example.org', "/bin/sh -c 'mkdir -p /tmp/ansible-tmp-1397947711.21-5932460998838
    && chmod a+rx /tmp/ansible-tmp-1397947711.21-5932460998838 && echo /tmp/ansible-tmp-1397947711.21-5932460998838'"]
    server.example.org | FAILED => SSH encountered an unknown error during the connection. We recommend you re-run the
    command using -vvvv, which will enable SSH debugging output to help diagnose the issue

The root cause is the empty string between -q and -o, who kinda break mkdir.
This commit is contained in:
Michael Scherer 2014-04-20 00:47:00 +02:00
parent ae29e43f93
commit c87afc1109

View file

@ -59,7 +59,8 @@ class Connection(object):
self.common_args = []
extra_args = C.ANSIBLE_SSH_ARGS
if extra_args is not None:
self.common_args += shlex.split(extra_args)
# make sure there is no empty string added as this can produce weird errors
self.common_args += [x.strip() for x in shlex.split(extra_args) if x.strip()]
else:
self.common_args += ["-o", "ControlMaster=auto",
"-o", "ControlPersist=60s",