1. 程式人生 > 其它 >Ansible之playbook語法

Ansible之playbook語法

Ansible playbook語法

一、playbook中的yml檔案語法

  1. 第一行以3個減號開頭,作為文件開始的標記,末尾可能使用3個圓點作為文件結束標記(一般都省略)
---
  1. 使用空格來縮排,處於同一級別的縮排空格數量相等,子專案縮排量大於父項,對縮排幾個沒有要求,一般2個即可

  2. yml列表中的專案以一個破折號加空格開頭

- list1
- list2
- list3

list1,list2,list3代表3個不同的專案,而每個專案下可以定義具體的任務。

  1. play本身是一個鍵值對集合,同一play中的鍵應該使用相同的縮排量

  2. 一個鍵可以有多個值對應,以1個減號加空格以列表形式存在

tasks: 
  - first
  - second
  - third

二、playbook示例

  1. 單個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模組中的欄位,表明安裝狀態、
  1. 單個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個任務列表,注意縮排關係和對齊。

  1. 多個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鍵,還有一點一般冒號後面和減號後面要有一個空格。一定要注意縮排與對齊,子項相對父項要有縮排,平級關係保持機同縮排。

=======================================================================

知識無邊界,交流以長進

如需轉載,請註明出處,謝謝

=======================================================================