Linux Playbook roles的使用

角色相似於一些屬性的集合。mysql

好比webserver dbserver。不一樣的服務器須要安裝不一樣的軟件,咱們須要一種快捷的方式讓服務器儘快上線。咱們能夠將每個種類的服務器做爲一個角色,在角色中建立該角色須要執行的任務。nginx

從ansible的角度來看,一個角色就是一個目錄,在目錄中有該角色應該有的所有屬性。web

角色集合:sql

        roles/服務器

             mysql/ide

             httpd/測試

             nginx/優化


mysql httpd  nginx都是角色。spa

好比mysql。在mysql下還須要有包含屬性的目錄:日誌

        mysql/

             files/  存放由copyscript模塊等調用的文件

             templates/ template模塊 查找所須要模板文件的目錄

             tasks/ 至少應該包含一個名爲main.yml的文件 其餘文件須要在main.yml中經過Include進行包含

             handlers/ 至少應該包含一個名爲main.yml的文件其餘文件須要在main.yml中經過Include進行包含

             vars/ 至少應該包含一個名爲main.yml的文件其餘文件須要在main.yml中經過Include進行包含

             meta/ 定義當前角色的特殊設定及其依賴關係 至少應該包含一個名爲main.yml的文件其餘文件須要在main.yml中經過Include進行包含

             default/ 爲當前角色設定默認變量時使用此目錄

若是使用roles功能,那麼在ansible-playbook在執行腳本時會自動的到ansible目錄下找尋相關文件。

測試一個實例

第一步:建立所需的目錄

圖片.png

第二步:查看角色目錄

圖片.png

第三步:編輯任務主文件

圖片.png

src指定的文件會在telnet/templates目錄中查找

第四步:建立腳本

圖片.png

第五步:試運行

圖片.png

第六步:運行

圖片.png

第七步:檢查

圖片.png


再作一個實例

因爲配置文件發生改變,就生成一個日誌文件,就在上面的實例基礎上作修改

第一步:修改.j2文件

圖片.png

第二步:建立被調用的文件

圖片.png

第三步:修改tasks主文件

圖片.png

第四步:試運行

圖片.png

第五步:運行

圖片.png

第六步:檢查

圖片.png


優化上面的配置

在第二次執行腳本的時候,其實telnet的程序已經安裝過了,能夠跳過這個任務。經過tags指定須要執行的任務

第一步:修改.j2文件

圖片.png

第二步:修改tasks主文件

圖片.png

第三步:試運行

圖片.png

這裏沒有執行安裝telnet的任務


調用變量的實例

第一步:定義變量

圖片.png

第二步:修改.j2文件

圖片.png

第三步:試運行

圖片.png

第四步:執行

圖片.png

第五步:遠端主機檢查

圖片.png

第六步:從新執行命令,不過此次帶上參數

圖片.png

第七步:在遠端主機上檢查結果

圖片.png

這裏要證實-e指定的變量值要優先於變量文件中的變量值


經過調用角色傳遞變量

第一步:修改腳本文件

圖片.png

第二步:執行:

圖片.png

第三步:在遠端主機上檢查

圖片.png

調用角色時加入判斷語句

第一步:修改腳本文件

圖片.png

第二步:試運行

圖片.png

第三步:如今把條件改爲 6

圖片.png

第四步:試運行

圖片.png

因爲遠端主機是7,因此跳過任務

相關文章
相關標籤/搜索