- Ansible 教程
- Ansible - 首頁
- Ansible - 簡介
- Ansible - 環境設定
- Ansible - YAML 基礎
- Ansible - Ad hoc 命令
- Ansible - 劇本
- Ansible - 角色
- Ansible - 變數
- Ansible - 高階執行
- Ansible - 故障排除
- Ansible 有用資源
- Ansible - 快速指南
- Ansible - 有用資源
- Ansible - 討論
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 欄位包含任務的名稱。這作為使用者的幫助文字。它不是必需的,但在除錯劇本時非常有用。每個任務在內部連結到一段稱為模組的程式碼。一個應該執行的模組,以及要執行的模組所需的引數。