diff --git a/lib/ansible/plugins/action/package.py b/lib/ansible/plugins/action/package.py index 9488b9f1086..024ef790abf 100644 --- a/lib/ansible/plugins/action/package.py +++ b/lib/ansible/plugins/action/package.py @@ -44,6 +44,10 @@ class ActionModule(ActionBase): module = getattr(facts['ansible_facts'], 'ansible_pkg_mgr', 'auto') if module != 'auto': + + if module not in self._shared_loader_obj.module_loader: + return {'failed': True, 'msg': 'Could not find a module for %s.' % module} + # run the 'package' module new_module_args = self._task.args.copy() if 'use' in new_module_args: diff --git a/lib/ansible/plugins/action/service.py b/lib/ansible/plugins/action/service.py index fc1704c3862..8cceb85e945 100644 --- a/lib/ansible/plugins/action/service.py +++ b/lib/ansible/plugins/action/service.py @@ -20,6 +20,7 @@ __metaclass__ = type from ansible.plugins.action import ActionBase + class ActionModule(ActionBase): TRANSFERS_FILES = False @@ -43,7 +44,7 @@ class ActionModule(ActionBase): if not 'failed' in facts: module = getattr(facts['ansible_facts'], 'ansible_service_mgr', 'auto') - if not module or module == 'auto': + if not module or module == 'auto' or module not in self._shared_loader_obj.module_loader: module = 'service' if module != 'auto':