可以在角色中重用角色吗?我的意思不是通过在角色的meta/main.yml文件中定义依赖关系,而是通过,包括,直接定义另一个角色的任务/main.yml中的角色?
例如,我在rolebook中定义了几个基本角色,在角色中定义了一些更高级别的角色。除了一些特定的任务之外,我希望高级角色包括一些基本角色。
playbooks/
rolebooks/
some_role/
roles/
webtier/
tasks/
main.yml在剧本/角色/webtier/任务/main.yml中:
- shell: echo 'hello'
- { role: rolebooks/some_role }
- shell: echo 'still busy'谢谢
发布于 2016-10-08 20:16:18
发布于 2014-10-24 16:57:14
AFAIK,你不能这样做。这就是依赖关系的目的。
如果您希望避免依赖关系(例如,您希望“角色X”在两个任务之间运行),如果您认为这些任务是相关的,则可以在剧本本身中这样做:
角色/webtier/任务/main.yml:
- shell: echo 'hello'
- include: webtier.yml
- shell: echo 'role done'总之,这取决于你到底想做什么。但是在您的示例中,“仍然繁忙”似乎意味着rolebooks/some_role仍然在运行,这是不可能的(这里没有并发性)。
显然,您还可以在主游戏手册中对角色进行排序(这可能是您已经做过的):
- name: Polite foo stuff
hosts: foo_hosts
roles:
- say_hello
- rolebooks/some_role
- say_bye
- name: Unpolite foo stuff
hosts: !foo_hosts
roles:
- rolebooks/some_role发布于 2015-03-07 02:29:02
你不能,但你可以做一些类似的事情。
用于以下方面的布局:
roles/
...
common/tasks/main.yml
nginx/tasks/main.yml
...在nginx/tasks/main.yml中,您可以调用您的共同任务:
- name: Call the 'common' role to do some general setup
include: ../../common/tasks/main.yml请注意,由于您没有使用典型的导入结构,您可能会遇到一些“奇怪”,比如角色默认变量无法访问,除非您之前以标准的方式包含了该角色。
https://stackoverflow.com/questions/26551422
复制相似问题