作為系統管理員,您可以在 SaltStack Config 中建立工作,以執行遠端執行工作、套用狀態、啟動 Salt 執行器等。工作通常用於需要自動執行多次的系統作業。

開始之前

SaltStack Config 中的工作通常包含 Salt 開放原始碼社群開發的執行模組或狀態模組之一。因此,您需要先熟悉有關 Salt 系統的一些基本概念,以及如何使用可用的執行模組和狀態模組執行一般管理工作。

若要瞭解... 請參閱...

使用 Salt 的基礎知識

Salt 狀態

Salt 執行模組和狀態模組

建立工作

建立新工作:

  1. 研究哪個 Salt 執行模組或狀態模組可協助您實現期望的結果。找到滿足您需求的 Salt 模組時,閱讀該模組的說明文件,以確保熟悉該模組的參數和其他需求。
  2. 如果工作使用 Salt 狀態模組,請在 SaltStack Config 檔案伺服器中建立新的狀態檔案。如需詳細資訊,請參閱如何建立狀態檔案和 pillar 資料?
  3. 建立新工作。
    1. 按一下側邊功能表中的組態 >工作以開啟 [工作] 工作區。
    2. 按一下建立工作按鈕。
      備註:

      如果未顯示 [建立工作] 按鈕,則表明您沒有建立新工作的權限。請連絡您的 vRealize Automation 管理員以取得存取權或請求代表您建立此工作,以便您可以完成本教學課程。

    3. 輸入新工作的詳細資料。
      欄位

      名稱

      為工作提供描述性名稱,簡要說明此工作的用途或此工作將要執行的作業。例如,「Configure Windows firewall settings」。

      說明

      新增說明,告知其他使用者此工作的用途,例如「在 Windows 節點上針對連接埠 445 開啟防火牆」。

      命令

      • 對於針對部屬節點執行的工作,選取 salt
      • 對於針對 Salt 主節點執行的工作,選取 salt-runsalt-run 工作也稱為 Salt 執行器。Salt 執行器是用於在 Salt 主節點上執行便利函數的模組。可以使用 Salt 執行器執行協調、遠端支援部屬節點、呼叫 webhook 等。它們對於集中執行工作或從一個中心起點執行工作非常有用。例如,可以將 highstate 套用至與指定 Salt 主節點相關聯的所有部屬節點。

      如果您不確定要選取哪個選項,請使用 salt,因為大多數工作都針對部屬節點執行。

      附註:如果您決定變更命令,系統將顯示一個新的函數清單供您選擇。

      目標

      可選:目標是指一或多個 Salt 主節點中的一組部屬節點,將為其套用工作的 Salt 命令。可以在 [部屬節點] 工作區或 [目標] 工作區中為工作建立目標。如需詳細資訊,請參閱如何建立目標?

      如果希望在執行工作時選取目標,請不要從此功能表中選取任何選項。將此欄位留空可使您在執行工作時選取目標。但是,定義工作目標還可防止此工作在不應執行該工作的節點上執行。

      函數

      選取執行此工作時要執行的 Salt 模組。按一下此欄位,然後開始輸入要選取的 Salt 模組的名稱或從功能表中進行選擇。如果要使用的模組未包含在下拉式清單中,也可以輸入自己的值。

      如果此工作旨在將 Salt 狀態檔案套用至部屬節點,請使用 state.apply 模組。如需詳細資訊,請參閱 state.apply

      如需 Salt 模組的完整清單,請參閱 Salt 模組索引。另請參閱一般工作範例中的資料表,其中描述了一些最常用的模組。

      引數

      可以使用引數欄位將 argskwargs 傳遞給 Salt 模組。

      引數欄位中的每一行代表一個引數。例如,如果使用的是 file.copy 模組,則可以將 path/to/src/path/to/dst 傳遞給該模組。

      還可以使用關鍵字引數。例如,可以將 src=path/to/src/dst=path/to/dst/ 傳遞給 file.copy 模組。

      如需 Salt 模組的完整清單,請參閱 Salt 模組索引

      環境

      此欄位只有在適用於所選函數 (如 state.applystate.highstate 等) 時才可用。

      從功能表中選取所需的 Salt 環境,如果清單中未顯示該環境,則輸入該環境。例如,如果要套用基本環境中的狀態檔案,請從功能表中選取 base

      狀態

      此欄位只有在適用於所選函數 (如 state.apply) 時才可用。

      從功能表中選取要套用的狀態檔案,如果清單中未顯示該狀態檔案,則輸入該狀態檔案。

      Pillar 覆寫

      此欄位只有在適用於所選函數 (如 state.apply) 時才可用。接受 JSON 形式的 pillar 資料。pillar 資料儲存到工作定義中,並在執行階段傳遞給模組函數。

      SaltStack Config 中使用 Pillar 覆寫類似於透過 CLI 傳送自訂 pillar 值。透過這種方式傳遞的值會覆寫使用 pillar_roots 或外部 Pillar 來源設定的現有 Pillar 值。不會覆寫未包含在 kwarg 中的 Pillar 值。

      如需有關 pillar 資料的詳細資訊,請參閱如何建立狀態檔案和 pillar 資料?

      SaltStack Config 中的 Apache 工作範例
    4. 可選:勾選作為測試執行 (試執行) 選項以執行測試工作並產生模擬工作傳回。[測試 (試執行)] 僅適用於某些函數,例如 state.apply。如果選取 [測試],則工作將在試執行模式下執行,不會進行任何變更。如果此選項保持未選取狀態,可以稍後在執行工作時選擇將工作作為測試執行。
    5. 可選:將工作輸入新增到工作。如需詳細資訊,請參閱新增工作輸入
  4. 儲存工作並確認該工作顯示在 [工作] 工作區中。

新增工作輸入

作為系統管理員,您可以使用工作輸入設定其他使用者可在執行階段變更的引數或變數。您可以建立通用工作,然後為使用者定義可選和必需的工作輸入,而不是為不同的使用案例建立多個工作。這有助於減少收到的工作建立請求量。

使用工作輸入的一個優點在於,您可以限制對其他管理員可在工作執行階段傳遞給函數的引數或變數類型的存取,同時仍然授與他們執行必要工作的能力以完成他們職責範圍內的工作。這樣一來,明確定義的工作輸入可確保您的組織遵循標準的安全性最佳做法,如最低權限原則。

開始之前

考慮使用者需要編輯哪些工作輸入

在定義工作輸入之前,請務必考慮希望使用者在執行階段查看和編輯哪些工作輸入。請記住,除了您以外,其他人可能會執行此工作,並且工作輸入呈現給他們的方式將因您的工作輸入設定方式而異。請花一些時間仔細考慮您希望這些使用者在執行階段查看和編輯哪些工作輸入。

例如,假設您建立這樣一個工作:根據伺服器的用途或角色將組態設定套用至伺服器。您可以建立一個套用狀態檔案中的組態設定的一般工作,然後建立工作輸入,以允許管理員從下拉式功能表的清單中選取套用的狀態檔案。在工作執行階段,使用者將看到下拉式功能表,其中僅包含您定義的可行狀態檔案清單,無任何其他內容。

這樣一來,工作輸入使系統管理員能夠更有效地控制您允許其他管理員在工作執行階段查看和變更的內容。您可以提供彈性,同時確保其他使用者只能變更其職責或權限層級範圍內允許的內容。

定義工作輸入:
  1. 按一下側邊功能表中的組態 >工作以開啟工作工作區。
  2. 選取一個工作以開啟工作的詳細資料。
  3. 向下捲動到工作詳細資料頁面的工作輸入區段。工作輸入清單的螢幕擷取畫面
  4. 按一下新增工作輸入按鈕。
  5. 輸入工作輸入的詳細資料。
    欄位
    顯示名稱

    設定工作輸入的名稱。

    當使用者在執行階段查看此工作輸入時,您在顯示名稱中輸入的文字是指示輸入功能和用途的最重要指標。

    選擇簡短而準確的描述性名稱,例如「Service to restart」。

    輸入類型

    設定工作輸入的類型。有四種輸入類型:字串、數字、布林值和選取。

    • 如果希望使用者提供值,則使用字串輸入類型。
    • 如果希望使用者指定數量或大小,則使用數字
    • 對於 true 或 false 情形,使用布林值
    • 如果希望使用者從值清單中進行選擇,則使用選取選取清單中的值可以是字串、數字或布林值。例如,「Service to restart」工作輸入的輸入類型可能是選取字串清單。例如,httpdsshdmysqld

    在選擇輸入類型之前,請先參閱 Salt 模組索引。輸入類型由工作使用的 Salt 模組以及 Salt 模組中與輸入類型關聯的參數確定。如果選擇錯誤的輸入類型,則工作將失敗。

    在工作執行時顯示

    允許使用者在執行工作時查看和編輯值。

    如果啟用此設定,則編輯工作輸入視窗中將顯示說明文字欄位。

    如果您覺得很難找到簡短而準確的顯示名稱,請使用說明文字欄位提供有關工作輸入的其他資訊。例如,您可以描述需要使用者提供值的情況。

    當使用者執行工作時,此說明文字將顯示在工作輸入名稱旁邊的說明工具提示 (?) 下。

    關鍵字

    提供傳遞給正在執行的模組函數的參數或引數。如需有關模組函數的詳細資訊,請參閱 Salt 模組索引

    附註:工作輸入不支援非關鍵字位置引數。這些引數可以在工作中的引數下指定,但無法在工作執行時提供。

    預設值/值

    如果啟用在工作執行時顯示,則可以使用可選的預設值欄位為工作輸入提供預設值。使用者可以將預設值傳遞給模組函數,也可以在執行階段進行變更。

    請考慮為使用者提供預設值是否有所助益。提供預設值可協助使用者在執行工作時節省時間,但在某些情況下可能不需要。例如,名為「Datacenter」的工作輸入可能不需要預設值,因為值會有所不同。

    如果停用在工作執行時顯示,則可以使用欄位將預設值傳遞給模組函數。使用者將無法查看或編輯值。

    工作輸入時需要

    如果啟用在工作執行時顯示,則可以選擇要求使用者為工作輸入提供值。

    請考慮要求使用者提供值是否有所助益。設計工作時,請考慮如果使用者未提供值會發生什麼情況。如果工作在未提供值的情況下可能會失敗,則要求在執行階段提供。如果工作可以在未提供值的情況下成功執行,則將其設為可選。

    如果可能,請使用說明文字欄位協助使用者瞭解工作輸入的功能。

  6. 儲存工作輸入,並確認顯示在工作詳細資料頁面的工作輸入清單中。
    備註:

    工作輸入清單中可能會顯示其他欄位,例如環境狀態測試,具體取決於您使用的模組函數。如果您希望使用者在執行階段看到這些輸入,請按一下關鍵字旁邊的鉛筆圖示以編輯工作輸入,並啟用在工作執行時顯示

  7. 儲存工作。
  8. 若要驗證工作輸入是否按預期工作,請以能夠使用較低權限層級執行工作或具有較少存取權限的角色的使用者身分登入 SaltStack Config

    如果缺少工作輸入、工作失敗,或者工作輸入需要其他引數或說明,請在允許使用者執行工作之前對工作進行任何必要的調整。

後續步驟

建立工作後,現在可以臨機或定期執行該工作。如需詳細資訊,請參閱: