diff --git a/changelogs/fragments/remove_key_from_vars.yml b/changelogs/fragments/remove_key_from_vars.yml new file mode 100644 index 00000000000..eb5e4416b02 --- /dev/null +++ b/changelogs/fragments/remove_key_from_vars.yml @@ -0,0 +1,2 @@ +- bugfixes: + - disambiguate keywords from variables in include_role https://github.com/ansible/ansible/pull/38968 diff --git a/lib/ansible/playbook/included_file.py b/lib/ansible/playbook/included_file.py index 55686199ac3..548e4ffde6a 100644 --- a/lib/ansible/playbook/included_file.py +++ b/lib/ansible/playbook/included_file.py @@ -142,7 +142,7 @@ class IncludedFile: inc_file = IncludedFile(include_file, include_variables, original_task) else: # template the included role's name here - role_name = include_variables.get('name', include_variables.get('role', None)) + role_name = include_variables.pop('name', include_variables.pop('role', None)) if role_name is not None: role_name = templar.template(role_name) @@ -151,7 +151,7 @@ class IncludedFile: for from_arg in new_task.FROM_ARGS: if from_arg in include_variables: from_key = from_arg.replace('_from', '') - new_task._from_files[from_key] = templar.template(include_variables[from_arg]) + new_task._from_files[from_key] = templar.template(include_variables.pop(from_arg)) inc_file = IncludedFile("role", include_variables, new_task, is_role=True)