From 751865d68cbdb0658113893956cece11dcd4914e Mon Sep 17 00:00:00 2001 From: Brian Coca Date: Mon, 3 Oct 2016 08:42:32 -0400 Subject: [PATCH] only change dir to playdir if local fixes #17869 fixes #17770 (cherry picked from commit 49ce0c8baccbec45156b8a1ecb5c1d496180ed43) --- lib/ansible/plugins/action/__init__.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/ansible/plugins/action/__init__.py b/lib/ansible/plugins/action/__init__.py index 92da3d848c1..449db1ab3c3 100644 --- a/lib/ansible/plugins/action/__init__.py +++ b/lib/ansible/plugins/action/__init__.py @@ -735,13 +735,15 @@ class ActionBase(with_metaclass(ABCMeta, object)): display.debug("_low_level_execute_command(): executing: %s" % (cmd,)) - # Change directory to basedir of task for command execution - cwd = os.getcwd() - os.chdir(self._loader.get_basedir()) + # Change directory to basedir of task for command execution when connection is local + if self._connection.transport == 'local': + os.chdir(self._loader.get_basedir()) + cwd = os.getcwd() try: rc, stdout, stderr = self._connection.exec_command(cmd, in_data=in_data, sudoable=sudoable) finally: - os.chdir(cwd) + if self._connection.transport == 'local': + os.chdir(cwd) # stdout and stderr may be either a file-like or a bytes object. # Convert either one to a text type