diff --git a/lib/ansible/executor/task_executor.py b/lib/ansible/executor/task_executor.py index d228437e0fc..1da071623dd 100644 --- a/lib/ansible/executor/task_executor.py +++ b/lib/ansible/executor/task_executor.py @@ -282,12 +282,13 @@ class TaskExecutor: # if this task is a TaskInclude, we just return now with a success code so the # main thread can expand the task list for the given host if self._task.action == 'include': - include_file = self._task.args.pop('_raw_params', None) + include_variables = self._task.args.copy() + include_file = include_variables.pop('_raw_params', None) if not include_file: return dict(failed=True, msg="No include file was specified to the include") - else: - include_file = templar.template(include_file) - return dict(include=include_file, include_variables=self._task.args) + + include_file = templar.template(include_file) + return dict(include=include_file, include_variables=include_variables) # Now we do final validation on the task, which sets all fields to their final values. # In the case of debug tasks, we save any 'var' params and restore them after validating