ansible中的playbook

ansible中的playbook,將常用的模塊任務,寫入到playbook中,ansible方便快捷的管理主機。

playbook使用yaml語言來書寫,簡單說下yaml語言。


1、YAML簡介

YAML是一個可讀性高的用來表達資料序列的格式。優點

YAML的可讀性好  

YAML和腳本語言的交互性好  

YAML使用實現語言的數據類型  

YAML有一個一致的信息模型  

YAML易於實現  

YAML可以基於流來處理  

YAML表達能力強擴展性好  

YAML的語法和其他高階語言類似並且可以簡單表達清單、散列表、標量等數據結構。其結構Structure通過空格來展示序列Sequence裏的項用"-"來代表  

Map裏的鍵值對用":"分隔。YAML文件擴展名通常爲.yaml或者.yml。比如  

name: cb  

age: 20gender: Male  

spouse:  

name: hello  

age: 18  

gender: Female  

children:    

YAML 2 個重要的結構組成部分list和directory  

list  

列表的所有元素均使用“-”打頭例如  

# A list of tasty fruits  

- Apple  

- Orange  

- Strawberry  

- Mango  

   

dictionary  

字典通過key與valuef進行標識例如  

---  

# An employee record  

name: Example Developer  

job: Developer  

skill: Elite  

   

2、ymal中的變量


變量命名  

變量名僅能由字母、數字和下劃線組成且只能以字母開頭。  

   

facts  

facts是由正在通信的遠程目標主機發回的信息這些信息被保存在ansible變量中。要獲取指定的遠程主機所支持的所有facts可使用如下命令進行  

# ansible hostname -m setup 這個命令可以獲得被監控端主機的各種信息將這些信息得到後保存到變量中。  

   

自定義變量  

在 yaml 中可以使用vars關鍵字來定義變量  

vars:  

var_name: value  

   

變量的引用  

` var_name `  

   

   

特殊的變量迭代  

當有需要重複性執行的任務時可以使用迭代機制。其使用格式爲將需要迭代的內容定義爲item變量引用並通過with_items語句來指明迭代的元素列表即可。  

比如添加用戶的不同寫法: 

一般做法   

- name: add user testuser1  

user: name=testuser1 state=present groups=wheel 

- name: add user testuser2  

user: name=testuser2 state=present groups=wheel 

使用變量方式  

- name: add several users  

vars:  

user1: testuser1  

user2: testuser2  

user: name=` user1 ` state=present groups=wheel 

user: name=` user2 ` state=present groups=wheel 

使用迭代方式  

- name: add several users  

user: name=` item ` state=present groups=wheel 

with_items:   

- testuser1   

- testuser2  

事實上with_items中可以使用元素還可爲hashes例如  

- name: add several users  

user: name=` item`.`name ` state=present groups=` item`.`groups `  

with_items:  

- { name: 'testuser1', groups: 'wheel' }  

- { name: 'testuser2', groups: 'root' } 


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