什麼是 Ansible 劇本以及如何自己編寫一個


Ansible 是一款開源自動化工具,簡化了 IT 基礎設施的部署和管理。Ansible 的關鍵特性之一是能夠建立劇本,劇本是一系列指令的集合,指定 Ansible 將要執行的任務。本文將介紹 Ansible 劇本、其結構以及如何自己建立它們。

什麼是 Ansible 劇本?

Ansible 劇本是一個文字檔案,包含一系列指令,概述了 Ansible 將要執行的操作。劇本使用 YAML 編寫,這是一種人類可讀的標記語言。可以使用劇本定義一組可以按特定順序執行的任務。劇本中的一個任務是一個模組,它執行特定操作,例如安裝軟體包、建立使用者或傳輸檔案。

Ansible 劇本用於什麼?

Ansible 劇本管理許多工、分配角色、提供部署過程以及定義設定和變數。如果您正在使用多臺伺服器,Ansible 劇本會管理已構建的機器或伺服器之間的步驟,並使它們按照使用者需要的方式進行結構化和執行。劇本可以比作說明手冊。

使用者可以使用 Ansible 劇本來控制對遠端計算機的部署和設定。此外,透過同步或非同步啟動任務,劇本可以安排利用滾動更新的多層部署。

總之,Ansible 劇本允許使用者輕鬆地管理多個裝置,並確保所有受影響的元件作為一個整體執行。對於 DevOps 工程師來說,這是一個非常有用的工具。

Ansible 劇本中不同型別的變數是什麼?

由於沒有兩個系統完全相同,Ansible 使用變數來幫助使用者處理系統差異。變數名必須以字母開頭,但也可以包含數字、下劃線和其他字元。此外,變數中絕不允許出現空格。

可以使用 "vars:" 命令在劇本中直接宣告變數。變數的示例包括給定的命令、正確的名稱、埠或 Web 伺服器。例如,您可以透過新增一個名為 "greeting" 且值為 "你好!" 的變數來設定一個劇本,以該短語向人們打招呼。當用戶執行劇本時,訊息將顯示在終端上。

Ansible 劇本結構

Ansible 劇本具有必須遵循的特定結構。

結構如下:

---
- name: Playbook Name
 hosts: Group or Host
 become: true or false
 tasks:
 - name: Task Name
 module_name: Module Parameter=Value
 become: true or false
 tags:
 - tag1
 - tag2

讓我們詳細檢查一下這些元件。

  • --- 這表示 YAML 檔案的開始。

  • name 這是劇本的名稱。

  • hosts 這是將在其上執行劇本的組或主機。

  • become 這指定 Ansible 是否應該成為超級使用者。

  • tasks 這是要執行的任務列表。

  • name 這是任務的名稱。

  • module_name 這是將要執行的模組的名稱。模組名稱後面是引數列表,形式為 parameter=value。

  • become 這指定 Ansible 是否應該成為超級使用者來執行模組。

  • tags 這是一個可選的標籤列表,可用於將任務分組。

Ansible 劇本建立

既然我們已經瞭解了 Ansible 劇本的結構,讓我們編寫一個簡單的 Ansible 劇本來在遠端計算機上安裝 Apache。

步驟 1:建立劇本檔案

第一步是建立一個新的 YAML 檔案,副檔名為 .yml。讓我們將檔案命名為 install_apache.yml。

步驟 2:定義劇本

下一步是定義劇本。開啟 install_apache.yml 檔案並新增以下幾行:

---
- name: Install Apache
 hosts: webserver
 become: true
 tasks:

這定義了一個名為 **安裝 Apache** 的劇本,它將在 **webserver** 組上執行。我們還指定了 Ansible 應該成為超級使用者來執行任務。

步驟 3:定義任務

下一步是定義將安裝 Apache 的任務。將以下幾行新增到劇本檔案:

- name: Install Apache
 apt:
 name: apache2
 state: present

這定義了一個名為 **安裝 Apache** 的任務,它將使用 **apt** 模組來安裝 Apache。**name** 引數指定要安裝的軟體包,**state** 引數指定軟體包應該存在。

步驟 4:儲存並執行劇本

儲存劇本檔案並使用 **ansible-playbook** 命令執行劇本。這是一個示例:

ansible-playbook install_apache.yml

Ansible 將連線...

此外,以下是有助於記住在使用 Ansible 劇本時的一些提示:

  • 劇本的副檔名為 .yml,並使用 YAML 語言編寫。

  • 使用此命令執行劇本:$ ansible-playbook <playbook.yml>

  • 使用此命令檢查劇本中的語法錯誤:$ ansible-playbook <playbook.yml> --syntax-check

  • 建立列表。列表定義劇本變數中的元素。使用 – 符號建立列表。

  • 應該使用空格。每個作業或塊都可以用空行分隔,這使得劇本更容易瀏覽。

  • 標記每個作業。雖然任務命名不是必需的,但它很有用。為每個作業選擇清晰簡潔的名稱。

  • 包含狀態。雖然 'state' 引數不是必需的,但您可以選擇使用 'state=present' 或 'state=absent' 等狀態設定以提高畫質晰度。

  • 使用註釋。即使您列出了任務和狀態,也有一些情況需要額外的詳細資訊。添加註釋(以 # 開頭),以幫助使用者理解(或提醒自己!)作業或劇本的作用、執行方式以及原因。

結論

總之,Ansible 劇本是 IT 基礎設施自動化和部署的重要組成部分。它們允許使用者以簡單有效的方式管理任務、分配角色、提供部署過程以及定義設定和變數。透過建立劇本,DevOps 工程師可以輕鬆地管理和部署多個裝置,並確保所有受影響的元件作為一個整體執行。瞭解劇本的結構和語法對於建立成功的自動化流程至關重要。透過遵循本文中概述的步驟,使用者可以建立和執行自己的 Ansible 劇本,以簡化其 IT 管理任務。總的來說,Ansible 及其劇本對於任何希望自動化其 IT 基礎設施部署和管理的組織來說都是寶貴的工具。

更新於:2023年4月27日

瀏覽量:542

開啟您的職業生涯

透過完成課程獲得認證

開始學習
廣告