在include_role中使用with_items遍历角色列表时,vars_from无法正确查找变量文件。解决方法是使用include_tasks来加载指定角色的tasks文件,并使用vars_files定义变量文件路径。例如:
- name: Example play to include roles with vars_files
hosts: all
vars_files:
- vars/main.yml
tasks:
- name: include roles with vars_files
include_role:
name: "{{ item }}"
tasks_from: main.yml
with_items:
- role1
- role2
vars_files:
- "path/to/{{ item }}/vars/main.yml"
这里,我们使用include_tasks和vars_files来加载指定角色的tasks和var文件。这样就可以成功地找到角色变量文件并将它们用于include_role步骤中。