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!