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)自動(dòng)裝載變量文件、tasks及handlers等。要使用roles只需要playbook中使用include指令即可。

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

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

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

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