可以在 SaltStack Config 的 [檔案伺服器] 和 [Pillar] 工作區中建立或上傳狀態檔案和 pillar 資料。如果您不希望使用檔案伺服器,SaltStack Config 還支援連線到外部存放庫 (例如 Git 存放庫),可以在其中儲存狀態檔案和 pillar 資料。

什麼是狀態檔案?

可以使用 SaltStack Config 狀態管理系統建立狀態檔案,然後將其同時套用至許多節點,而不必逐個手動設定每個節點或應用程式。這些狀態檔案可以包含一組指示,告知 SaltStack Config 應在節點上執行哪些作業以及應採用何種順序執行。它們還可以解釋應套用哪些組態檔或設定。

撰寫或修改狀態檔案後,可以自動執行這些狀態檔案,並將其一次套用至許多節點。可以根據每個節點的固有內容 (例如,其作業系統) 確定目標節點,也可以根據您定義的自訂標籤確定目標節點。如需詳細資訊,請參閱如何建立目標?

此外,狀態管理系統還確保盡可能高效地正確設定每個節點。如果組態發生偏差,SaltStack Config 可以將節點和應用程式恢復到其符合標準的組態狀態。如果組態需要變更,SaltStack Config 可以將這些變更快速部署到受影響的節點。

狀態檔案範例

狀態檔案通常採用 YAML 和 Jinga 編寫,但其他格式 (如 JSON) 也與 Salt 相容。一般狀態檔案可能如下所示:

install_apache:
  pkg.installed:
    - name: httpd
    
ensure_service_running:
  service.running:
    - name: httpd
    - watch:
      - pkg: install_apache
      
default_html_page:
  file.managed:
    - name: /var/www/html/index.html
    - source: salt://apache/index.html
此狀態檔案包含三個步驟,分別執行三個不同的 Salt 執行模組。將此狀態檔案套用至部屬節點時, SaltStack Config 將會:
  • 在部屬節點上安裝 Apache (httpd)。
  • 啟動 Apache 服務。
  • 部署在部屬節點上託管的範例 HTML 索引頁面。

什麼是 pillar 資料?

備註: 建議最好保留敏感資訊的 Pillar 資料。
Pillar 是 Salt 主節點上所儲存資料的結構,並傳遞到已獲得授權能夠存取該資料的一或多個部屬節點。Pillar 資料有兩個主要使用案例:
  • Pillar 可以限制使用者存取私人、敏感資料,例如,密碼和組態設定。例如,可以使用 pillar 以允許使用者執行需要對外部服務進行驗證的工作,而無需存取這些驗證認證本身。在這種情況下,可以為使用者指派對指定工作和目標的存取權,而不是對包含敏感驗證詳細資料的 pillar 的存取權。
  • Pillar 可以傳送根據上下文或請求資料之部屬節點的不同而不同的資料。例如,可以將不同的密碼指派給不同的部屬節點,並將所有密碼儲存在一個 pillar 檔案中。然後,可以編寫一個狀態檔案,告知部屬節點在該檔案中查詢其唯一密碼,而不必建立多個檔案或在多個位置儲存密碼。

儲存在 SaltStack Config Pillar 存放區中的資料使用與 SaltStack Config 的特定執行個體關聯的 Raas 加密金鑰 (例如:「/etc/raas/pki/.raas.key」) 進行加密。在 SaltStack Config UI 中定義 Pillar 資料後,將使用此金鑰對其進行加密並儲存在 PostgreSQL 資料庫中。此外,還使用此金鑰解密資料,以便在 SaltStack Config UI 中顯示。

pillar 檔案範例

Pillar 檔案通常採用 YAML 和 Jinga 編寫,但其他格式 (如 JSON) 也與 Salt 相容。Pillar 資料儲存為字典,並使用索引鍵-值配對查詢值。一般 pillar 檔案可能如下所示:

 pillar1: value
 pillar2:
   - value
   - value
 pillar3:
   sub_key:
     - value
     - value

此範例顯示了三種設定 pillar 資料格式的不同方法。您選擇使用的語法取決於您的需求以及需要儲存的資料類型。

開始之前

由於 SaltStack Config 由 Salt 提供支援,因此具備 Salt 的基本應用知識以及與這些功能相關的概念會有所助益。下表列出了一些有用的資源,以瞭解更多資訊:

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

使用 Salt 的基礎知識

Salt 狀態

Pillar 資料

Salt 執行模組和狀態模組

定義 pillar 資料後,可以透過按一下更新目標,選取目標群組,然後按一下儲存,將 pillar 資料指派給一組部屬節點系統。

將 pillar 資料指派給特定目標系統並包含在狀態檔案中時,主節點將為每個部屬節點系統處理這些資料,並針對每個部屬節點使用單獨的 AES 金鑰加密這些資料。憑藉此金鑰,可以在狀態檔案或協調檔案程式期間將 pillar 資料傳輸到目標系統。

將狀態檔案新增到檔案伺服器

將狀態檔案新增到檔案伺服器以便在工作中使用:

  1. 研究哪個 Salt 執行模組或狀態模組可協助您實現期望的結果。找到滿足您需求的 Salt 模組時,閱讀該模組的說明文件,以確保熟悉該模組的參數和其他需求。
  2. 可選:最佳做法是,在慣用代碼編輯器中編寫狀態檔案的粗略草稿,然後使用代碼 linter 檢查狀態檔案是否使用格式正確的語法。
  3. SaltStack Config 使用者介面中,按一下側邊功能表中的組態 >檔案伺服器以開啟 [檔案伺服器] 工作區。
  4. 首次開啟 [檔案伺服器] 工作區時,您會看到檔案目錄和一個空白的新檔案。使用此空白檔案建立新的狀態檔案或從代碼編輯器複製狀態檔案。
  5. 按一下 Saltenv 功能表,然後選取要在其中儲存狀態檔案的環境。如果您不確定要選取哪個環境,請使用 base
  6. 路徑名稱欄位中,輸入檔案路徑和檔案名稱,以副檔名 .sls 結尾。例如,/my-directory/my-state-file.sls
  7. 在檔案內文中,編寫或複製狀態檔案代碼。例如:
  8. 儲存狀態檔案並確認新檔案顯示在檔案伺服器目錄中。

將 pillar 資料新增到 Salt 主節點

雖然可以使用 SaltStack Config [Pillar] 工作區將 pillar 資料新增到 Salt 主節點,但將 pillar 資料直接新增到 Salt 主節點可能會更輕鬆。若要新增 pillar 資料以使其可在狀態檔案中參考或指派給目標,可以採用以下兩種方法之一:

  • 透過 SSH 登入 Salt 主節點,然後使用將檔案新增到主節點的標準 Salt 程序將 pillar 檔案新增到主節點的目錄。如需詳細資訊,請參閱 PillarPillar 逐步解說
  • SaltStack Config 使用者介面中建立一個工作,該工作使用 salt-run 命令 (使用 Salt 執行器功能) 將 pillar 資料新增到 Salt 主節點。如需詳細資訊,請參閱如何建立工作

後續步驟

建立部屬節點可存取的狀態檔案和 pillar 資料後,可以在 SaltStack Config 中建立的工作中參考這些檔案。如需詳細資訊,請參閱如何建立工作