Hub*_*NNN 6 ansible ansible-role
基于角色的 ansible 文档,我可以通过创建文件来创建多个角色入口点:
playbooks/roles/my_role/tasks/main.yml
playbooks/roles/my_role/tasks/other.yml
Run Code Online (Sandbox Code Playgroud)
我可以main.yml使用以下代码添加默认角色:
---
- name: Example 1
hosts: <hostnames>
roles:
- my_role
Run Code Online (Sandbox Code Playgroud)
但我该如何使用other.yml入口点呢?
我希望它是这样的,但这些都不起作用:
---
- name: Example 1
hosts: <hostnames>
roles:
- my_role:other
- my_role/other
- my_role.other
Run Code Online (Sandbox Code Playgroud)
剧本中的指令roles加载角色的默认“入口点”,即tasks/main.yml。其他任务文件tasks/others.yml可以根据条件、标签等从中加载。
但是,如果您确实想从角色加载特定文件,则可以使用include_role或import_role模块。
例如:
# invoke role's default "entrypoint" (main.yml)
roles:
- my_role
tasks:
# include the role, but tasks from other.yml
- include_role:
name: my_role
tasks_from: other.yml
Run Code Online (Sandbox Code Playgroud)
请注意您链接的文档中提到的执行顺序。
另一个“hacky”选项是使用include|import_tasks模块,其工作方式就像包含一个简单的“任务”文件(失去角色功能),如果它满足您的要求。
tasks:
- include_tasks: path/to/my_role/tasks/other.yml
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1758 次 |
| 最近记录: |