diff --git a/lib/ansible/runner/action_plugins/synchronize.py b/lib/ansible/runner/action_plugins/synchronize.py index a4f7f3610cb..337f6cf799d 100644 --- a/lib/ansible/runner/action_plugins/synchronize.py +++ b/lib/ansible/runner/action_plugins/synchronize.py @@ -77,12 +77,11 @@ class ActionModule(object): if not dest_host is src_host: user = inject.get('ansible_ssh_user', self.runner.remote_user) - - # should we support ssh_password and ssh_port here?? - - options['private_key'] = \ + private_key = \ inject.get('ansible_ssh_private_key_file', self.runner.private_key_file) + if not private_key is None: + options['private_key'] = private_key src = self._process_origin(src_host, src, user) dest = self._process_origin(dest_host, dest, user) diff --git a/library/network/synchronize b/library/network/synchronize index fd979b74074..016abd3734e 100644 --- a/library/network/synchronize +++ b/library/network/synchronize @@ -99,10 +99,6 @@ def main(): rsync = module.params.get('local_rsync_path', 'rsync') temp = os.path.dirname(os.path.realpath(__file__)) - if not private_key and ('@' in dest or '@' in source): - return module.fail_json(msg='A private key is required for remote connections.' - ) - cmd = '%s --archive --delay-updates --compress' % rsync if verbosity: cmd = '%s -%s' % (cmd, 'v' * int(verbosity)) @@ -112,8 +108,11 @@ def main(): cmd = cmd + ' --temp-dir ' + temp if module.boolean(delete): cmd = cmd + ' --delete-after' - if private_key: - cmd = cmd + " --rsh '%s -i %s -o %s'" % ('ssh', private_key, + if private_key is None: + private_key = '' + else: + private_key = '-i '+ private_key + cmd = cmd + " --rsh '%s %s -o %s'" % ('ssh', private_key, 'StrictHostKeyChecking=no') # need ssh param if rsync_path: cmd = cmd + ' --rsync-path ' + rsync_path