Ansible Playbook详解
Playbook
playbook介紹
playbook 劇本是由一個(gè)或多個(gè)“play”組成的列表
play的主要功能在于將預(yù)定義的一組主機(jī),裝扮成事先通過ansible中的task定義好的角色。Task實(shí)際是調(diào)用ansible的一個(gè)module,將多個(gè)play組織在一個(gè)playbook中,即可以讓它們聯(lián)合起來,按事先編排的機(jī)制執(zhí)行預(yù)定義的動(dòng)作
Playbook 文件是采用YAML語言編寫的
YAML 語言
YAMl 語言介紹
YAML是一個(gè)可讀性高的用來表達(dá)資料序列的格式。YAML參考了其他多種語言,包括:XML、C語言、Python、Perl以及電子郵件格式RFC2822等。Clark Evans在2001年在首次發(fā)表了這種語言,另外Ingy d?t Net與Oren Ben-Kiki也是這語言的共同設(shè)計(jì)者,目前很多軟件中采有此格式的文件,如:ubuntu,anisble,docker,k8s等
YAML:YAML Ain’t Markup Language,即YAML不是XML。不過,在開發(fā)的這種語言時(shí),YAML的意思其實(shí)是:“Yet Another Markup Language”(仍是一種標(biāo)記語言)
YAML 官方網(wǎng)站:http://www.yaml.org
YAML 語言特性
- YAML的可讀性好
- YAML和腳本語言的交互性好
- YAML使用實(shí)現(xiàn)語言的數(shù)據(jù)類型
- YAML有一個(gè)一致的信息模型
- YAML易于實(shí)現(xiàn)
- YAML可以基于流來處理
- YAML表達(dá)能力強(qiáng),擴(kuò)展性好
YAML語法簡介
- 在單一文件第一行,用連續(xù)三個(gè)連字號(hào)“-” 開始,還有選擇性的連續(xù)三個(gè)點(diǎn)號(hào)( … )用來表示文件的結(jié)尾
- 次行開始正常寫Playbook的內(nèi)容,一般建議寫明該P(yáng)laybook的功能
- 使用#號(hào)注釋代碼
- 縮進(jìn)必須是統(tǒng)一的,不能空格和tab混用
- 縮進(jìn)的級(jí)別也必須是一致的,同樣的縮進(jìn)代表同樣的級(jí)別,程序判別配置的級(jí)別是通過縮進(jìn)結(jié)合換行來實(shí)現(xiàn)的
YAML文件內(nèi)容是區(qū)別大小寫的,key/value的值均需大小寫敏感 - 多個(gè)key/value可同行寫也可換行寫,同行使用,分隔
- v可是個(gè)字符串,也可是另一個(gè)列表
- 一個(gè)完整的代碼塊功能需最少元素需包括 name 和 task
- 一個(gè)name只能包括一個(gè)task
- YAML文件擴(kuò)展名通常為yml或yaml
YAML的語法和其他高階語言類似,并且可以簡單表達(dá)清單、散列表、標(biāo)量等數(shù)據(jù)結(jié)構(gòu)。其結(jié)構(gòu)(Structure)通過空格來展示,序列(Sequence)里的項(xiàng)用"-“來代表,Map里的鍵值對(duì)用”:"分隔,下面介紹常見的數(shù)據(jù)結(jié)構(gòu)。
本文鏈接:http://www.yunweipai.com/34650.html
總結(jié)
以上是生活随笔為你收集整理的Ansible Playbook详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ansible常用模块详解
- 下一篇: Ansible-list-Diction