默认情况下,Ansible会在main.yml中查找角色的任务。我有太多的main.yml文件,我想将它重命名为rolename.yml或更独特的东西。如何更改Ansible的默认行为以使用rolename.yml而不是tasks / main.yml?
答案 0 :(得分:7)
布鲁斯已经指出这是硬编码的。但我也有这个问题的问题,因为我的IDE在选项卡中显示文件名,而我曾经有一个名为" main.yml"的bazillion选项卡。
我的标准设置是有两个文件:
在 main.yml 中,只是 role-name.yml 的include
任务。除此之外,还包括我处理标签,因为我希望用我们的名字来标记我的所有角色。
---
- include: role-name.yml
tags: role-name
...
答案 1 :(得分:3)
不幸的是,没有办法做到这一点。名称main.yml
被硬编码到ansible源代码中。 (如果您真的在意,请在this file中查找函数_resolve_main
。)
角色任务将始终位于文件roles/<rolename>/tasks/main.yml
,roles/<rolename>/vars/main.yml
中的变量等中。因为每个文件所在的路径提供了角色名称的完整详细信息。文件的目的,真的没有必要从main.yml更改名称。你最终会得到像roles/<rolename>/tasks/<rolename>.yml
这样多余的东西。
这一切都记录在Ansible的Best Practices文档中。
答案 2 :(得分:2)
作为解决方法,可以将符号链接方便地命名为rolename_tasks.yml
到main.yml
...