Ansible學(xué)習(xí)——組件之roles day7

roles 角色

在ansible中,roles是playbooks的一部分。playbooks模塊化之后,成為roles的組織結(jié)構(gòu),易讀,代碼可重用,層次清晰。

ansible的roles用于層次性、結(jié)構(gòu)化地組織palybook。roles能夠根據(jù)層次型結(jié)構(gòu)自動裝載變量文件、tasks及handlers等。要使用roles只需要playbook中使用include指令即可。

以特定的層級目錄結(jié)構(gòu)進行組織的tasks、variables、handlers、templates、files等;
role_name/

files/:
存儲由copy或script等模塊調(diào)用的文件;
tasks/:
此目錄中至少應(yīng)該有一個名為main.yml的文件,用于定義各task;其它的文件需要由main.yml進行“包含”調(diào)用;
handlers/:
此目錄中至少應(yīng)該有一個名為main.yml的文件,用于定義各handler;其它的文件需要由main.yml進行“包含”調(diào)用;
vars/:
此目錄中至少應(yīng)該有一個名為main.yml的文件,用于定義各variable;其它的文件需要由main.yml進行“包含”調(diào)用;
templates/:
存儲由template模塊調(diào)用的模板文本;
meta/:
此目錄中至少應(yīng)該有一個名為main.yml的文件,定義當(dāng)前角色的特殊設(shè)定及其依賴關(guān)系;其它的文件需要由main.yml進行“包含”調(diào)用;
default/:
此目錄中至少應(yīng)該有一個名為main.yml的文件,用于設(shè)定默認變量;

在playbook中調(diào)用角色的方法:

- hosts: HOSTS
  remote_user: USERNAME
  roles:
  - ROLE1
  - ROLE2
  - { role: ROLE3, VARIABLE: VALUE, ...}
  - { role: ROLE4, when: CONDITION }
roles目錄結(jié)構(gòu)

root@node1 playbook]# tree roles/

roles/ \\ansible所有的信息都放到此目錄下面對應(yīng)的目錄中
└── nginx  \\角色名稱
    ├── default  \\為當(dāng)前角色設(shè)定默認變量時使用此目錄,應(yīng)當(dāng)包含一個main.yml文件;
    ├── files  \\存放有copy或script等模塊調(diào)用的文件
    ├── handlers \\此目錄總應(yīng)當(dāng)包含一個main.yml文件,用于定義各角色用到的各handler
    ├── meta \\應(yīng)當(dāng)包含一個main.yml,用于定義角色的特殊設(shè)定及其依賴關(guān)系;1.3及以后版本支持
    ├── tasks \\至少包含一個名為main.yml的文件,定義了此角色的任務(wù)列表,可使用include指令
    ├── templates \\template模塊會自動在此目錄中尋找Jinja2模板文件
    └── vars  \\應(yīng)當(dāng)包含一個main.yml文件,用于定義此角色用到的變量
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容