在使用include_role时,如果被包含的角色没有运行,可能是因为没有在主playbook及其roles文件夹下的meta/main.yml文件中声明要使用的被包含角色。 如下所示,假设有两个角色:role1和role2,用role2来包含role1。在主playbook的roles中只声明了role2,但没有声明role1。 当运行playbook时,不会主动运行role1,从而导致role2没有运行。 要解决这个问题,需要在主playbook及其roles文件夹下的meta/main.yml文件中声明要使用的被包含角色(role1)。 示例如下:
playbook.yml:
- name: include_role_test
hosts: localhost
gather_facts: no
roles:
- role2
roles/role2/tasks/main.yml:
- name: include_role_demo
include_role:
name: role1
roles/meta/main.yml:
dependencies:
- { role: role1 }
- { role: role2 }
上一篇:包含的C文件中的“Pragma”