角色依赖
角色还允许你通过使用 dependencies
块创建 meta/main.yml
文件来将其他角色定义为依赖项:
dependencies:
- role: common
也可以将值传递给依赖角色中的参数/变量:
dependencies:
- { role: common, some_parameter: 3 }
或者甚至有条件地执行依赖角色:
dependencies:
- { role: common, some_parameter: 3 }
- { role: sshd, enable_sshd: false,
when: environment == 'production' }
依赖角色始终在依赖于它们的角色之前执行。而且,它们只执行一次。如果两个角色的状态与其依赖关系相同,则仅在第一次执行时。
想象角色 role1,role2 和 role3 与 folhuan3 的角色:
role1 / meta / main.yml:
dependencies:
- role: role3
基于 role2 /元/ main.yml:
dependencies:
- role: role3
在同一个 playbook 中执行 role1 和 role2 时(在 role2 之前调用 role1),执行顺序如下:
role3 -> role1 -> role2
你可以通过在 role1 和 role2 的 meta/main.yml
中指定 allow_duplicates: yes
来覆盖此行为。生成的执行顺序为:
role3 -> role1 -> role3 -> role2