almost 4 years ago

Saltstack 將 state 分為七層,由上至下分別是:

  • Overstate
  • HighState
  • SLS

  • High Data
  • Low State
  • Low Chunk
  • Function Call

上半部是使用者編寫的腳本,下半部是 Saltstack 執行時所產生的資料結構。

SLS (SalT State)

使用者編寫 script 的最小單位。

Saltstack 提供了許多種 renderer,可以依照自己喜歡的方式去編寫。官網上的例子都是使用 YAML

High Data

將 SLS 檔案組合完後,經過第一次編譯,所形成的資料結構。本身是一個 OrderedDict

Low State

High Data 會再經過第二次編譯產生一個裝著 Low Chunk 的 Ordered List。這個 List 的 Order,僅表示 Saltstack 去評估 (evaluate) 的順序,但未必是最終的執行順序。執行順序會受到 Requisite Statements 影響

Low Chunk

以資料結構來描述 Function Call 時,最簡單、基本的呈現。是一個 dict。裡面的 key 包含了:

  • state
  • function
  • name
  • parameters

Function Call

Saltstack 執行工作的最小單位。每個 SLS 定義的 State 最後都會被分解為一個個 Function Call。

Highstate

SLS 定義的是一連串想要執行的工作。HighState 則讓你可以將機器分組,運用不同的 SLS 進行佈署。

Overstate

Overstate 讓你以一個節奏制定你的佈署流程,就是所謂的 System Orchestration。

簡單的說 SLS 是一台(群)機器的安裝流程,而 Overstate 就是一整個系統的佈署流程。

參考資料

官方文件
  1. State System Layers
  2. Understanding State Ordering
  3. Ordering States
← Jenkins Plugins 彙整 Introduction to Docker →
 
comments powered by Disqus