在此範例中,您將瞭解如何使用 SaltStack Config 套用狀態檔案以快速部署和管理組態設定。身為 IT 系統管理員或 DevOps 團隊成員,您知道,在許多節點上,特別是大規模節點,逐個手動新增或更新組態設定非常耗時。更糟糕的是,必須同時管理數百個或數千個節點時,還可能會出現組態錯誤或組態偏差。狀態檔案系統可協助您解決此問題。在此範例中,您將瞭解如何在 SaltStack Config 中使用狀態檔案一致地新增和更新組態設定,例如,Window Server 上的防火牆設定。

警告:

此實機操作範例將對您的環境進行變更,因此完成該範例時應小心謹慎。請考慮僅在測試或開發環境中嘗試使用節點完成此範例,而不要在生產環境中嘗試。

在 Windows 節點上設定防火牆設定

透過針對連接埠 445 開啟防火牆在 Windows 部屬節點上設定防火牆設定:

  1. SaltStack Config 檔案伺服器中建立新檔案。
    1. SaltStack Config 使用者介面中,按一下側邊功能表中的組態 > 檔案伺服器
    2. 首次開啟檔案伺服器工作區時,您會看到檔案目錄和一個空白的新檔案。使用此空白檔案建立新檔案。
    [檔案伺服器] 工作區中的空白狀態檔案
  2. 在檔案伺服器中建立新的狀態檔案 (SLS)。
    1. 按一下 Saltenv 下拉式功能表,然後選取 base
    2. 在未標記的功能表旁邊,輸入檔案路徑和檔案名稱。使用 /windows/firewall.sls
    3. 在檔案內文中,複製並貼上以下狀態檔案代碼 (使用 YAML 語法):
      open_smb_port:
        win_firewall.add_rule:
          - name: SMB (445)
          - localport: 445
          - protocol: tcp
          - action: allow
      

      如需有關 Windows 防火牆模組的詳細資訊,請參閱 Salt 模組 - Win 防火牆

      用於在 Windows 機器上設定防火牆設定的狀態檔案
    4. 儲存狀態檔案。
    5. 確認新檔案顯示在檔案伺服器目錄中的 base > windows > firewall.sls 下。
  3. 建立新工作。
    1. 按一下側邊功能表中的組態 > 工作以開啟 [工作] 工作區。
    2. 按一下建立工作按鈕。
      備註:

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

  4. 輸入新工作的詳細資料並儲存該工作。
    欄位 範例值

    名稱

    為此工作指定描述性名稱,例如「設定 Windows 防火牆」。

    說明

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

    命令

    選取 salt

    salt 命令用於針對部屬節點執行的工作。

    目標

    請勿從此功能表選取任何目標。將此欄位留空可使您在執行工作時選取目標。

    函數

    按一下此欄位,然後開始輸入 state.apply,直到可以選取此模組。

    在此欄位中,可以選取執行此工作時套用的 Salt 模組。

    環境

    從功能表中選取 base

    狀態

    從功能表中選取新建立的狀態檔案:windows.firewall

    引數

    此模組不接受引數,因此請將其留空。

    工作輸入 此工作不需要任何工作輸入,因此請留空。如需有關工作輸入的詳細資訊,請參閱〈如何建立工作〉。
    一個新工作,其作用是在 Windows 機器上開啟連接埠 445
  5. 工作已建立,請透過選取工作目標來執行工作。
    1. 在側邊功能表中,按一下目標以開啟 [目標] 工作區並檢視目標。
    2. 所有部屬節點資料表中,找到要執行此工作的目標 Windows 部屬節點。勾選此部屬節點旁邊的方塊,然後按一下執行工作按鈕。
    3. 在 [執行工作] 對話方塊中,按一下工作功能表,然後選取在先前步驟中建立的「設定 Windows 防火牆」工作。如果需要,可以輸入工作名稱以篩選工作。
    4. 按一下立即執行

      如果成功執行工作,則會顯示一則通知,說明工作已成功啟動。

  6. 按一下側邊功能表中的活動 > 已完成,檢查工作是否已完成。

    如果此資料表中未列出您的工作,則工作可能仍在進行中。可以透過按一下活動 > 進行中尋找目前正在執行的工作。繼續重新整理活動 > 已完成,直到您的工作顯示在資料表中。

  7. 當工作完成後,檢閱工作結果。
    1. 找到顯示工作的資料列,然後按一下其 JID (工作識別碼)。
      備註:

      JID 顯示為包含 20 位數的超連結數字。例如,一個可能的 JID 可以是:20210823204015061902

    2. 檢閱工作結果,確認針對連接埠 445 開啟了防火牆。

結果和關鍵資訊摘要

檢閱工作結果時,請考慮以下幾點:

  • 狀態檔案提供了一種簡單易行的方法,可快速在一組目標節點上套用正確的組態設定 (如防火牆設定)。狀態檔案可確保您的節點具有一致的組態設定,並且可以在任何規模下快速高效地部署這些設定。如果需要變更組態設定,只需更新狀態檔案並將其重新套用到目標中定義的所有部屬節點。
  • 狀態檔案還可防止組態偏差,系統組態隨著時間的推移或節點的不同而變得日漸迥異時會出現組態偏差。套用狀態檔案時,SaltStack Config 會檢查目標是否處於所需的組態狀態。狀態類似於組態原則。它們定義了伺服器應具有的目標狀態。將該狀態 (原則) 套用至系統時,SaltStack Config 僅執行使組態符合該狀態 (原則) 所需的作業。如果已經符合標準,SaltStack Config 只告知您該組態已符合標準,而不會進行進一步變更。
  • 在此範例中,您將狀態檔案本機儲存在 SaltStack Config 檔案伺服器中,但請注意,您可以將狀態檔案儲存在已進行版本控制的專有 Git 存放庫中。許多使用者將 SaltStack Config 連結到專有 Git 存放庫,他們可以在其中使用基礎結構即代碼方法儲存和密切監控狀態檔案的變更。