功能:根據子產品檔案動态生成對應的配置檔案
.j2檔案
yml檔案
生成的配置檔案
文法:
以執行個體來講:

再來一個多行多主機的模闆:
playbook檔案:
j2檔案:
用于層次性、結構化地組織playbook。 roles能夠根據層次型結構自動裝載變量檔案、tasks以及handlers等。
要使用roles隻需要在playbook中使用import_tasks指令即可。(include也可以用,官方明确聲明此指令将會淘汰)
簡單來講,roles就是通過分别将變量、檔案、任務、模闆及處理器放置于單獨的目錄中,并可以便捷地
include它們的一種機制。角色一般用于基于主機建構服務的場景中,但也可以是用于建構守護程序等場景中
複雜場景:建議使用roles,代碼複用度高
還是拿一個執行個體來說:
如果要在一台初始化的主機上面安裝httpd服務,有以下過程:(這裡不考慮編譯安裝情況,假設yum腳本裡不會建立組和使用者)
把這些過程展現在ansible上面就是對應的具體的tasks,是以,将需要在roles/tasks/下面建立分别用于這些過程的獨立yml檔案
每個具體的小任務有了,那麼就得有一個主的配置檔案,預設劇本就會讀取它,進而确定其他任務的關系。
注意,檔案名必須是main.yml
最後,建立一個執行的playbook檔案,這個檔案與roles目錄是同級目錄。
至此,此時的目錄結構為:
為了更好的複用代碼,可以将一些公共的代碼集中在一個目錄裡,按需要在以後的roles進行調用
調用的時候,在tasks中引入即可
同理,在别的檔案中引入import_role也是可以的。
前面的章節針對tasks有tags,而roles中也可以運用此方法
基于條件判斷的roles的tags
當roles中有了tags後,執行時候加上-t tags名稱即可
第 (五) 篇屬于應用級别的。後續再更新了。
本文轉自 ljpwinxp 51CTO部落格,原文連結:http://blog.51cto.com/191226139/2069226