diff --git a/lib/ansible/playbook/task.py b/lib/ansible/playbook/task.py index c6d260cda4c..ac9972fc592 100644 --- a/lib/ansible/playbook/task.py +++ b/lib/ansible/playbook/task.py @@ -115,7 +115,7 @@ class Task(object): self.args = ds.get('args', {}) if self.sudo: - self.sudo_user = template.template(play.basedir, ds.get('sudo_user', play.sudo_user), module_vars) + self.sudo_user = ds.get('sudo_user', play.sudo_user) self.sudo_pass = ds.get('sudo_pass', play.playbook.sudo_pass) else: self.sudo_user = None diff --git a/lib/ansible/runner/__init__.py b/lib/ansible/runner/__init__.py index 9ee9e54a12b..94c886e6aa1 100644 --- a/lib/ansible/runner/__init__.py +++ b/lib/ansible/runner/__init__.py @@ -386,6 +386,10 @@ class Runner(object): if self.inventory.basedir() is not None: inject['inventory_dir'] = self.inventory.basedir() + # late processing of parameterized sudo_user + if self.sudo_user is not None: + self.sudo_user = template.template(self.basedir, self.sudo_user, inject) + # allow with_foo to work in playbooks... items = None items_plugin = self.module_vars.get('items_lookup_plugin', None)