Skip to content

如何在 Ansible Playbook 中定義任務

任務 Task 是你可以使用 Ansible playbook 自動執行的最小操作單元。劇本 Playbook 通常包含一系列服務於某個目標的任務,例如設置 Web 服務器或將應用程序部署到遠程環境。

Ansible 按照它們在劇本中定義的順序執行任務。在自動化諸如設置 LEMP 服務器之類的過程之前,你需要評估哪些手動步驟是必要的,以及它們必須完成的順序才能完成所有工作。然後,你將能夠確定需要哪些任務以及可以使用哪些模塊以更少的步驟實現目標。

模塊提供了執行操作的快捷方式,否則你必須將其作為原始 bash 命令運行。這些也經常用於跨不同操作系統抽象命令。

當你在本指南的前一部分創建你的第一個 playbook 時,你定義了一個使用調試輸出消息的任務。讓我們再看看那個 playbook。

playbook-01.yml
---
- hosts: all
  tasks:
    - name: Print message
      debug:
        msg: Hello Ansible World

每一個 task 任務被定義在級別之下。 name 屬性定義了在該任務即將執行時將被打印出來的輸出。

示例任務調用 debug 模塊,它允許您在playbook的執行中顯示消息。例如,這些消息可用於顯示調試信息,例如變量的內容或命令返回的輸出消息。

每個模塊都有自己的一組選項和屬性。debug 模塊需要一個名為 msg 的屬性,其中包含要打印的消息。特別注意縮進(2 個空格),因為 msg 必須是 debug 中的屬性。