2015-05-11 93 views

回答

6

布魯斯已經指出的那樣,這是硬編碼。但是我也遇到了這個問題,因爲我的IDE在標籤中顯示文件名,並且我曾經有一個名爲「main.yml」的bazillion標籤。

我的標準設置是有兩個文件:

  • main.yml
  • 角色名 .yml

main.yml然後簡單地是一個include任務到role-name.yml。除此之外,我還處理標籤,因爲我希望我的所有角色都標有他們的名字。

--- 

- include: role-name.yml 
    tags: role-name 

... 
+0

這裏也有類似的方法 - main.yml包含我的'我實際上可以看到我正在工作的基於文件名'yaml文件。鑑於沒有其他代碼在main.yml中列出,而不是指向更好命名文件的路由,除了初始創建之外,它們永遠不會更改,因此永遠不會造成混淆。 – PhillipHolmes

+0

最好的選擇(缺少修補Ansible)我已經看到了,它對我來說很奇怪,這包括相對於角色目錄而不是main.yml文件。你有任何提示讓./vars/main.yml少笨? – ThorSummoner

3

不幸的是有沒有辦法做到這一點。名稱main.yml被硬編碼成完整的源代碼。 (如果你真的關心,查找功能_resolve_mainthis file

角色的任務永遠是文件roles/<rolename>/tasks/main.yml中,變量roles/<rolename>/vars/main.yml,等等。因爲每個文件住在路徑提供了名稱的全部細節作用&文件的目的,真的不需要改變main.yml的名字。你只會得到類似roles/<rolename>/tasks/<rolename>.yml這是多餘的東西。

這一切記錄在Ansible的Best Practices文件。

+3

爲什麼一個不能與像'角色/ /tasks.yml'路徑結束了?海事組織,能夠使用這種簡化會很好。有沒有隱藏的陷阱? –

2

作爲解決方法可以方便的符號鏈接名爲rolename_tasks.ymlmain.yml ......