可以在 SaltStack Config 中使用工作,簡化並自動執行您或您的團隊定期執行的一般組態管理工作和程序。

SaltStack Config 中的工作是什麼?

工作用於執行遠端執行工作或將狀態檔案套用到由 SaltStack Config 管理的節點 (部屬節點)。工作通常用於需要自動執行多次的系統作業。可以建立工作以自動執行在系統中佈建、設定、部署、監控和管理節點時定期執行的一般工作。還可以將工作設定為按定期排程執行,例如定期檢查和防止組態偏差的工作。

可以儲存經常重複執行的工作,並逐步建立豐富的工作庫,供您的團隊將來重複使用。使用工作進行組態管理可減少您的團隊在系統中手動安裝、設定、部署、更新和維護節點所花的時間。

一般工作範例

如需工作之運作方式的實機操作介紹以及一般工作的一些實際範例,請參閱《SaltStack Config 入門》指南中的以下教學課程:

根據您的預期目標和目的,您可能會在 SaltStack Config 中執行數千種不同的工作。確定要完成的工作或需要解決的問題後,可以搜尋可用的 Salt 模組以尋找執行所需功能的模組。

SaltStack Config 中的工作通常包含 Salt 開放原始碼社群開發的一或多個執行模組或狀態模組。Salt 執行模組是包含 Python 代碼的小程式,可在 Salt 部屬節點上執行並執行特定的工作。Salt 狀態模組類似於執行模組。Salt 狀態模組是包含 Python 代碼的程式,可在 Salt 狀態檔案中用於管理將狀態套用到部屬節點的情況。

下表顯示了一些最常用的執行模組和狀態模組:

Salt 模組 說明

state.apply

將狀態檔案套用到部屬節點的模組。當狀態檔案執行時,該模組會檢查部屬節點是否處於目前所需的狀態。如果部屬節點未處於目前所需的狀態,則該模組會執行命令和模組以將該部屬節點置於所需狀態。

highstate 會套用在 top 檔案中定義的所有狀態。如需詳細資訊,請參閱 state.highstate

pkg.installed

一個狀態模組 (意味著在狀態檔案中使用),用於檢查是否安裝了正確版本的套件。如果未安裝,則該模組會安裝套件並確保安裝的是該套件的正確版本。如需有關在特定作業系統中安裝套件的詳細資訊,請參閱 salt.states.pkg

file.managed

一個狀態模組 (意味著在狀態檔案中使用),用於從 Salt 主節點下載檔案並將該檔案放置在目標部屬節點上供以後使用。如需有關使用 Salt 管理檔案的詳細資訊,請參閱 salt.states.file

service.running

一個狀態模組 (意味著在狀態檔案中使用),用於檢查服務是否正在執行。如果服務未執行,則該模組會啟動服務。如需有關使用 Salt 啟動或重新啟動服務的詳細資訊,請參閱 salt.states.service

如需有關 Salt 執行模組和狀態模組完整清單的詳細資訊,請參閱 Salt 模組索引

如果 Salt 中沒有您需要的模組,則可以透過採用 Python 編寫自己的自訂模組來延伸 Salt。如果需要,還可以將該模組提交到上游的 Salt Project。Salt Project 社群由 VMware 官方贊助,包括從事 IT 和系統管理工作的 3,000 多位參與者。Salt 社群透過建立各種執行模組和狀態模組來延伸 Salt,以完成最常見的工作或解決系統管理員面臨的最重要問題。

工作流程概觀

通常,資深系統管理員建立、設定和儲存工作設定供以後重複使用。然後,資深管理員可以授權初級管理員在初級管理員有權存取的任何節點 (目標) 上執行此工作。建立工作時,資深管理員定義工作輸入,這些輸入指的是初級管理員可以在執行階段變更的特定工作設定或變數。

例如,資深系統管理員可能會建置這樣一個工作:建立和部署虛擬機器,並在該機器上安裝一組基本的應用程式或服務。每次需要部署新的虛擬機器時都可以執行此工作,以確保將一組相同的應用程式和組態套用至每個部署。建立此基本工作後,資深系統管理員可以向初級管理員授與在其有權存取的目標 (節點) 上執行此工作的存取權。使用 SaltStack Config 中的角色型存取控制 (RBAC) 並遵循最低權限原則,資深管理員可以確定初級管理員可以執行哪些工作以及在哪些節點 (部屬節點) 上執行。

建立和執行工作的程序包含多個步驟,需要在 SaltStack Config 中使用一些不同的工具和工作區。下圖概述了整體工作流程:

說明工作流程的圖表

以下文章說明了各個步驟: