Ansible - 劇本



在本章中,我們將學習 Ansible 中的劇本。

劇本是編寫 Ansible 程式碼的檔案。劇本以 YAML 格式編寫。YAML 代表 Yet Another Markup Language。劇本是 Ansible 的核心功能之一,告訴 Ansible 執行什麼操作。它們就像 Ansible 的待辦事項清單,其中包含任務列表。

劇本包含使用者希望在特定機器上執行的步驟。劇本按順序執行。劇本是 Ansible 所有用例的基礎。

劇本結構

每個劇本都包含一個或多個劇本。劇本使用劇本進行結構化。一個劇本中可以有多個劇本。

劇本的功能是將針對特定主機定義的一組指令進行對映。

YAML 是一種嚴格型別的語言;因此,在編寫 YAML 檔案時需要格外小心。有不同的 YAML 編輯器,但我們更喜歡使用簡單的編輯器,如 notepad++。只需開啟 notepad++ 並複製貼上下面的 yaml,然後將語言更改為 YAML(語言 → YAML)。

YAML 以 ---(3 個連字元)開頭

建立劇本

讓我們從編寫一個示例 YAML 檔案開始。我們將逐步介紹 yaml 檔案中編寫的每個部分。

--- 
   name: install and configure DB
   hosts: testServer
   become: yes

   vars: 
      oracle_db_port_value : 1521
   
   tasks:
   -name: Install the Oracle DB
      yum: <code to install the DB>
    
   -name: Ensure the installed service is enabled and running
   service:
      name: <your service name>

以上是一個示例劇本,我們試圖涵蓋劇本的基本語法。將上述內容儲存在一個名為test.yml的檔案中。YAML 語法需要遵循正確的縮排,並且在編寫語法時需要稍微小心。

不同的 YAML 標籤

現在讓我們瞭解不同的 YAML 標籤。下面描述了不同的標籤:

name

此標籤指定 Ansible 劇本的名稱。就像此劇本將執行什麼操作一樣。可以為劇本指定任何邏輯名稱。

hosts

此標籤指定我們要針對其執行任務的主機或主機組的列表。hosts 欄位/標籤是必需的。它告訴 Ansible 在哪些主機上執行列出的任務。這些任務可以在同一臺機器上執行,也可以在遠端機器上執行。可以在多臺機器上執行任務,因此 hosts 標籤也可以包含一組主機條目。

vars

Vars 標籤允許您定義可以在劇本中使用的變數。用法類似於任何程式語言中的變數。

tasks

所有劇本都應包含任務或要執行的任務列表。任務是要執行的一系列操作。tasks 欄位包含任務的名稱。這作為使用者的幫助文字。它不是必需的,但在除錯劇本時非常有用。每個任務在內部連結到一段稱為模組的程式碼。一個應該執行的模組,以及要執行的模組所需的引數。

廣告

© . All rights reserved.