summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/ansible/parsing/mod_args.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/ansible/parsing/mod_args.py b/lib/ansible/parsing/mod_args.py
index a6ccaa0a56..ad4293013b 100644
--- a/lib/ansible/parsing/mod_args.py
+++ b/lib/ansible/parsing/mod_args.py
@@ -275,7 +275,14 @@ class ModuleArgsParser:
# if we didn't see any module in the task at all, it's not a task really
if action is None:
- raise AnsibleParserError("no action detected in task", obj=self._task_ds)
+ if 'ping' not in module_loader:
+ raise AnsibleParserError("The requested action was not found in configured module paths. "
+ "Additionally, core modules are missing. If this is a checkout, "
+ "run 'git submodule update --init --recursive' to correct this problem.",
+ obj=self._task_ds)
+
+ else:
+ raise AnsibleParserError("no action detected in task", obj=self._task_ds)
elif args.get('_raw_params', '') != '' and action not in RAW_PARAM_MODULES:
templar = Templar(loader=None)
raw_params = args.pop('_raw_params')