Ansible之playbook語法
阿新 • • 發佈:2021-08-19
Ansible playbook語法
一、playbook中的yml檔案語法
- 第一行以3個減號開頭,作為文件開始的標記,末尾可能使用3個圓點作為文件結束標記(一般都省略)
---
使用空格來縮排,處於同一級別的縮排空格數量相等,子專案縮排量大於父項,對縮排幾個沒有要求,一般2個即可
yml列表中的專案以一個破折號加空格開頭
- list1
- list2
- list3
list1,list2,list3代表3個不同的專案,而每個專案下可以定義具體的任務。
play本身是一個鍵值對集合,同一play中的鍵應該使用相同的縮排量
一個鍵可以有多個值對應,以1個減號加空格以列表形式存在
tasks: - first - second - third
二、playbook示例
單個play單個任務
為定義好的遠端web主機或主機組安裝Apache httpd
---
- name: Install and start Apache HTTPD
hosts: web
tasks:
- name: httpd package is present
yum:
name: httpd
state: present
解釋說明
- 第一行:3個減號,表明文件開始
- 第二行:- name:空格Install and start Apache HTTPD 表明這是一個play列表中第一項,name是鍵,後面的字串是值。這行的作用是標識了該play的用途,當執行訪play的時候會在終端有提示,此行可以省略,但是建議使用。
- 第三行:此行開始有縮排直到結尾,表明此行開始到結束都是第一個play列表的子專案。hosts用來指定要操作的遠端主機。
- 第四行:指明要在此遠端主機或主機組要執行的任務,可以是單個任務,也可以是多個任務
- 第五行:縮排2個空格(以tasks為參考)表明這是tasks列表中的第1項要執行的任務,name屬性表明要執行任務的說明,同第二行。
- 第六行:相對第5行縮排2個空格,表明是第1個任務列表下的子專案,使用Ansible中的yum模組。
- 第七行:相對yum縮排2個空格,此時name屬性是yum模組中欄位,表明要安裝的軟體包的名稱。
- 第八行:和第七行name對齊,state也是yum模組中的欄位,表明安裝狀態、
單個play多個任務
為定義好的遠端web主機或主機組安裝Apache httpd同時啟動httpd服務並加入開機啟動
---
- name: Install and start Apache HTTPD
hosts: web
tasks:
- name: httpd package is present
yum:
name: httpd
state: present
- name: httpd is enabled and running
service:
name: httpd
enabled: true
state: started
這裡tasks下以2個任務列表,注意縮排關係和對齊。
- 多個play多個任務
---
- name: Install and start Apache HTTPD
hosts: web
tasks:
- name: httpd package is present
yum:
name: httpd
state: present
- name: httpd is enabled and running
service:
name: httpd
enabled: true
state: started
- name: Install and start mariadb-server
hosts: database
tasks:
- name: mariadb-server is present
yum:
name: mariadb-server
state: latest
- name: mariadb enabled and running
service:
name: mariadb
enabled: true
state: started
三、總結
yaml檔案有嚴格的語法要求,一定要用空格來縮排,打死不能按tab鍵,還有一點一般冒號後面和減號後面要有一個空格。一定要注意縮排與對齊,子項相對父項要有縮排,平級關係保持機同縮排。
=======================================================================
知識無邊界,交流以長進
如需轉載,請註明出處,謝謝
=======================================================================