From 0aaee0272a07fa1cb5081290ec624975ba5b8aa2 Mon Sep 17 00:00:00 2001 From: Brian Coca Date: Fri, 9 Sep 2016 17:26:47 -0400 Subject: [PATCH] using delegated host's facts when delegating (#17489) fixes #17313 --- lib/ansible/plugins/action/package.py | 5 ++++- lib/ansible/plugins/action/service.py | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/ansible/plugins/action/package.py b/lib/ansible/plugins/action/package.py index 91fefd8ce6..0b725759a9 100644 --- a/lib/ansible/plugins/action/package.py +++ b/lib/ansible/plugins/action/package.py @@ -41,7 +41,10 @@ class ActionModule(ActionBase): if module == 'auto': try: - module = self._templar.template('{{ansible_pkg_mgr}}') + if self._task.delegate_to: # if we delegate, we should use delegated host's facts + module = self._templar.template("{{hostvars['%s']['ansible_pkg_mgr']}}" % self._task.delegate_to) + else: + module = self._templar.template('{{ansible_pkg_mgr}}') except: pass # could not get it from template! diff --git a/lib/ansible/plugins/action/service.py b/lib/ansible/plugins/action/service.py index 3648fa3a44..7a5f99a65f 100644 --- a/lib/ansible/plugins/action/service.py +++ b/lib/ansible/plugins/action/service.py @@ -40,7 +40,10 @@ class ActionModule(ActionBase): if module == 'auto': try: - module = self._templar.template('{{ansible_service_mgr}}') + if self._task.delegate_to: # if we delegate, we should use delegated host's facts + module = self._templar.template("{{hostvars['%s']['ansible_service_mgr']}}" % self._task.delegate_to) + else: + module = self._templar.template('{{ansible_service_mgr}}') except: pass # could not get it from template!