Linux企業實戰-ansible(53)角色

tasks目錄:角色需要執行的主任務文件放置在此目錄中,默認的主任務文件名爲main.yml,當調用角色時,默認會執行main.yml文件中的任務
handlers目錄:當角色需要調用handlers時,默認會在此目錄中的main.yml文件中查找對應的handler defaults目錄:角色會使用到的變量可以寫入到此目錄中的main.yml文件中,通常,defaults/main.yml文件中的變量都用於設置默認值,以便在你沒有設置對應變量值時,變量有默認的值可以使用,定義在
defaults/main.yml文件中的變量的優先級是最低的。

如果我們在寫playbook的時候不給定義變量

首先我們設置如下兩個文件均調用同一個文件

均使用的默認變量

這是因爲我們將ansible.conf下列操作打開

如果我們沒有打開的話那麼結果都是www.westos.org

默認情況下我們無法多次調用同一個角色

如果我們調用兩遍也只會顯示一遍

如果我們做如下操作,我們新建衣蛾yml文件然後裏面寫上allow——duplicates:true就可以多次調用

meta目錄:如果你想要賦予這個角色一些元數據,則可以將元數據寫入到meta/main.yml文件中,這些元數據用於描述角色的相關屬性,比如作者信息、角色要作用等等
templates目錄:角色相關的模板文件可以放置在此目錄中,當使用角色相關的模板時,如果沒有指定路徑,會默認從此目錄中查找對應名稱的模板文件。
files目錄:角色可能會用到的一些其他文件可以放置在此目錄中,比如,當你定義nginx角色時,需要配置https,那麼相關的證書文件即可放置在此目錄中

當我們需要傳遞參數的時候參數不同我們需要多次調用

vars目錄:角色會使用到的變量可以寫入到此目錄中的
main.yml文件中,看到這裏你肯定會有疑問,vars/main.yml文件和defaults/main.yml文件的區別在哪裏呢?區別就是,defaults/main.yml文件中的變量的優先級是最低的,而vars/main.yml文件中的變量的優先級非常高,如果你只是想提供一個默認的配置,那麼你可以把對應的變量定義在defaults/main.yml中,如果你想要確保別人在調用角色時,使用的值就是你指定的值,則可以將變量定義在vars/main.yml中,因爲定義在
vars/main.yml文件中的變量的優先級非常高,所以其值比較難以覆蓋。

如果我們定義的值別人不想用也可以通過如下操作進行覆蓋

當我們進行操作時不給變量值會賦予默認的值

我們也可以給值

我們也可以通過handler進行操作

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章