首页 > 解决方案 > Ansible:连接角色的最佳实践(meta、rolename: 或 import_role)

问题描述

有三种方法(据我所知)调用另一个角色:

1)在一个剧本中role: rolename

2) 在角色名/meta/main.yml -file 中的角色本身

dependencies:
  - { role: rolename2 }

3)

- import_role:
    name: anotherrolename

我想我也知道区别:2号(元方法)将rolname2在任务中指定的东西之前执行。第 3 号 = https://docs.ansible.com/ansible/2.4/import_role_module.html

首先我的问题不是这些方法之间的区别(请随时让我们知道),但我想知道连接两个(或更多)角色的最佳实践是什么。方法一、二还是三?

标签: ansibleroles

解决方案


如果您有一个相当简单的项目,您希望在所有节点上以相同的顺序运行相同的角色,请继续并在剧本中按顺序调用它们。

如果您有更复杂的依赖关系,并且只想管理相互依赖的角色,那么元依赖关系方法很好,据我所知是稳定的。

除非您需要来自 的额外功能import_role,例如在另一个任务列表中使用不同的参数多次运行角色,否则元数据依赖项将是首选,因为import_role在编写preview时。


推荐阅读