将角色/ rolename / tasks / main.yml重命名为Ansible中的rolename.yml

时间:2015-05-11 17:12:49

标签: ansible

默认情况下,Ansible会在main.yml中查找角色的任务。我有太多的main.yml文件,我想将它重命名为rolename.yml或更独特的东西。如何更改Ansible的默认行为以使用rolename.yml而不是tasks / main.yml?

3 个答案:

答案 0 :(得分:7)

布鲁斯已经指出这是硬编码的。但我也有这个问题的问题,因为我的IDE在选项卡中显示文件名,而我曾经有一个名为" main.yml"的bazillion选项卡。

我的标准设置是有两个文件:

  • main.yml
  • 角色的名称 .yml

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.ymlroles/<rolename>/vars/main.yml中的变量等中。因为每个文件所在的路径提供了角色名称的完整详细信息。文件的目的,真的没有必要从main.yml更改名称。你最终会得到像roles/<rolename>/tasks/<rolename>.yml这样多余的东西。

这一切都记录在Ansible的Best Practices文档中。

答案 2 :(得分:2)

作为解决方法,可以将符号链接方便地命名为rolename_tasks.ymlmain.yml ...