我無法找到的文檔的答案,無論是我能找到一個例子:有沒有可能在其他role/defaults/
然後main.yml
命名文件?我的意思是,main.yml
是具有默認值的文件的唯一有效名稱?Ansible角色。默認值
回答
通過本文檔的聲音;
http://docs.ansible.com/ansible/playbooks_roles.html#roles
角色只是自動化圍繞「包括」指令如上所述 ,真不含有超出一些 改進多少額外的魔法搜索路徑處理爲引用的文件。但是, 可以是一件大事!
這將指定下列行爲,爲每個角色的「x」:
如果角色/ X// main.yml存在,其中所列的任務將被添加 到播放任務
如果角色/ X /處理/ main.yml存在,處理程序列出 在其中將被添加到播放
如果角色/ X /瓦爾/ main.yml存在,其中所列 變量將被添加到播放
如果 角色/ X /默認/ main.yml存在,其中列出的變量將是 添加到播放
如果角色/ X /元/ main.yml存在,其中所列的任何角色 依賴將被添加到角色(1.3 及更高版本)的任何副本,腳本,模板或列表中包括(在角色) 可以在角色/ X/{文件,模板,任務}引用文件的任務/(DIR取決於 的任務),而不必以相對或絕對路徑
問:我的意思是,main.yml t他只有一個有缺省值的文件的有效名稱?
- 答:聽起來就像它是隻有當你想要自動加載特定的var_files爲該角色和自動include
任務文件。
問:是否有可能命名文件
答:是的,它只是意味着在劇本,你必須使用include
指令,並明確其指向唯一的任務的文件名。
例子:
- name: Do role
hosts: localhost
tasks:
- include: roles/operations/tasks/installProgram.yml
Ansible將查找在任務,變量,處理程序等默認的角色/目錄。角色/默認只是他們的文檔中提供的示例。您可以按不同的方式組織您的角色以滿足您的需求例如,我有這樣的建立;
roles/windows/<somerole>/tasks/main.yml
roles/linux/<somerole>/tasks/main.yml
main.yml是運行劇本時會被自動加載(通過「默認」)的唯一文件。如果您想要指定另一個文件名稱,您需要使用include函數並指向您的文件,如上所述。
「Best Practices」指南對目錄結構提供了一些很好的見解。
- 1. 角色默認變量中的Ansible遞歸循環
- 2. 分享Ansible角色
- 3. 覆蓋Ansible模塊選項默認值
- 4. Ansible角色YAML錯誤
- 5. Ansible角色全局變量
- 6. Ansible中缺少jenkins_configure_proxy角色
- 7. 如何組織Ansible角色?
- 8. 定義Ansible變量的角色與操作系統特定的默認值,可以輕鬆覆蓋
- 9. 角2不能設置默認值
- 10. 角度2選擇選項默認值
- 11. 角選擇默認
- 12. PropertyGrid中,默認值,未知色彩
- 13. 變色龍模板:默認值'tal:switch'
- 14. Ansible玩沒有默認主機
- 15. Ansible自組織命令默認用戶
- 16. Android默認顏色
- 17. Splunk:默認情況下,新角色是否成爲可授予角色?
- 18. Python3 - 默認值爲type的默認值?
- 19. Ansible劇本不運行從角色
- 20. Ansible - 將Jinja 2用於動態角色
- 21. 無法安裝Juniper.junos角色Ansible
- 22. Ansible:角色的任務結構
- 23. Ansible - 列出角色中的任務
- 24. ansible角色無法找到模塊
- 25. 在Ansible playbook中指定角色版本
- 26. Ansible - 全球安裝的角色
- 27. Ansible類似的角色重構
- 28. 如何在Ansible中跳過角色?
- 29. 什麼是存儲ansible角色
- 30. 使用Ansible設置列表項默認值
如果我命名默認文件'role/defaults/a.yml',然後在我的任務中包含include語句(不確定是否可能),它會真的*默認*嗎?它會被覆蓋嗎? Ansible如何知道這包括必須具有較低的優先級作爲常規變量? – madhead
Ansible新手在這裏。儘管如此,我的歉意並不確定。我想當你使用'include'語句時,它僅僅意味着'hey運行這個yml腳本',並且它沒有像引用文本中提到的所有角色魔法,比如自動變量加載。 –