diff --git a/lib/ansible/runner.py b/lib/ansible/runner.py index c7558086d9c..1cba37ce4fa 100644 --- a/lib/ansible/runner.py +++ b/lib/ansible/runner.py @@ -253,13 +253,13 @@ class Runner(object): if self.remote_user == 'root': args = "%s metadata=/etc/ansible/setup" % args else: - args = "%s metadata=/home/%s/.ansible/setup" % (args, self.remote_user) + args = "%s metadata=$HOME/.ansible/setup" % args else: if not 'metadata' in args: if self.remote_user == 'root': args['metadata'] = '/etc/ansible/setup' else: - args['metadata'] = "/home/%s/.ansible/setup" % (self.remote_user) + args['metadata'] = "$HOME/.ansible/setup" return args # ***************************************************** @@ -620,10 +620,14 @@ class Runner(object): def _get_tmp_path(self, conn): ''' gets a temporary path on a remote box ''' + # The problem with this is that it's executed on the + # overlord, not on the target so we can't use tempdir and os.path + # Only support the *nix world for now by using the $HOME env var + basetmp = "/var/tmp" if self.remote_user != 'root': - basetmp = "/home/%s/.ansible/tmp" % self.remote_user - cmd = "mktemp -d %s/ansible.XXXXXX" % basetmp + basetmp = "$HOME/.ansible/tmp" + cmd = "mktemp -d %s/ansible.XXXXXX" % basetmp if self.remote_user != 'root': cmd = "mkdir -p %s && %s" % (basetmp, cmd)