diff --git a/lib/ansible/runner/action_plugins/unarchive.py b/lib/ansible/runner/action_plugins/unarchive.py index 16c0bc8117..1e3795955d 100644 --- a/lib/ansible/runner/action_plugins/unarchive.py +++ b/lib/ansible/runner/action_plugins/unarchive.py @@ -78,7 +78,12 @@ class ActionModule(object): if copy: if self.runner.sudo and self.runner.sudo_user != 'root': self.runner._remote_chmod(conn, 'a+r', tmp_src, tmp) - module_args = "%s src=%s original_basename=%s" % (module_args, pipes.quote(tmp_src), pipes.quote(os.path.basename(source))) + # Build temporary module_args. + new_module_args = dict( + src=tmp_src, + original_basename=os.path.basename(source), + ) + module_args = utils.merge_module_args(module_args, new_module_args) else: module_args = "%s original_basename=%s" % (module_args, pipes.quote(os.path.basename(source))) return self.runner._execute_module(conn, tmp, 'unarchive', module_args, inject=inject, complex_args=complex_args)