定義工作或作業的目標有助於防止作業在不應執行該作業的節點上執行。可以使用 Grain、Glob、List 或 Compound 組織整理目標。

什麼是目標?

目標是指一或多個 Salt 主節點中的一組部屬節點,將為其套用工作的 Salt 命令。目標可包含已連線至環境中任何 Salt 主節點的部屬節點。Salt 主節點也可以像部屬節點一樣進行管理,如果正在執行部屬節點服務,也可以成為目標。

可以在 [部屬節點] 工作區中為工作建立目標。依預設,當您開啟工作區時,[所有部屬節點] 目標處於作用中狀態。[所有部屬節點] 目標會列出您有權存取的所有部屬節點。

開始之前

建立目標之前,必須考慮要建立的目標群組。例如,您可能希望為安全性區域或單一子網路建立目標群組。如何組織整理目標群組將取決於您組織的需求。

建立新目標

SaltStack Config 中的每個目標都需要名稱、Salt 主節點和目標準則。定義包括一或多個部屬節點的新目標:

  1. 在 [部屬節點] 工作區中,按一下目標側邊面板中的所有部屬節點
  2. 按一下建立目標按鈕。
  3. 建立目標對話方塊的名稱欄位中,輸入新目標的描述性名稱。
  4. 依預設,所有主節點設定處於啟用狀態,這意味著由任何 Salt 主節點管理的部屬節點均可包括在目標中。按一下此按鈕,可將此目標僅套用至與一或多個 Salt 主節點相關聯的部屬節點子集。

    如果停用此設定,將會顯示一個功能表,您可以使用此功能表選取要將目標套用到的一或多個 Salt 主節點。如需詳細資訊,請參閱〈目標設定〉

  5. 按一下 Grain 功能表,然後選取要使用的目標類型。可以使用 Grain、Glob、List 或 Compound 設定部屬節點目標。如需有關這些目標設定選項的詳細資訊,請參閱〈目標設定〉。如需有關 Salt 目標的更多一般背景資訊,請參閱設定部屬節點目標
  6. 根據上一步中選取的目標類型,提供不同的目標設定和準則。如需有關這些設定的詳細資訊,請參閱〈目標設定〉
    備註: 如果選取 [Compound] 作為首要準則,則必須遵循 Salt 目標設定參考中包括的目標設定語法,並且必須將任何次要準則包括在複合目標定義中。 SaltStack Config 不允許在目標編輯器中新增任何其他準則。如需有關複合目標設定的詳細資訊,請參閱 〈目標設定〉
  7. 完成後,按一下儲存

新目標將顯示在 [部屬節點] 工作區的目標清單中。

建立簡單的清單目標

使用簡單清單建立新目標:
  1. 在 [部屬節點] 工作區中,按一下目標側邊面板中的所有部屬節點
  2. 按一下要包括在清單中的部屬節點旁邊的核取方塊,然後按一下建立目標
    備註: 對部屬節點進行篩選或排序有助於定義清單。

    選取的清單將作為準則包括在內。

  3. 輸入目標名稱並定義任何其他目標設定。請參閱〈目標設定〉
  4. 完成後,按一下儲存

將 pillar 指派給目標

Pillar 主要用於儲存密碼或其他高度機密資料,例如帳戶認證、密碼編譯金鑰或密碼。對於儲存您不想直接放在狀態檔案中的非密碼資料 (例如組態資料) 來說,pillar 也很有用。將 pillar 資料指派給特定部屬節點目標:
  1. 在 [部屬節點] 工作區中,從目標側邊面板中選取目標。
  2. 按一下更多動作
  3. 在功能表中,按一下連結 Pillar
  4. 在對話方塊中,選取要套用至目標的 pillar。

    除了選取 pillar 外,還要選取重新整理 pillar,以便該 pillar 能夠立即可供所選目標使用。

  5. 按一下更新目標
    現在,選取的 pillar 資料可供目標中的所有部屬節點使用。
    備註: 也可以在 [Pillar] 工作區中將 pillar 指派給目標。如需詳細資訊,請參閱 〈如何建立狀態檔案和 pillar 資料〉

目標設定

SaltStack Config 中設定目標類似於在開放原始碼 Salt 中設定目標,但 SaltStack Config 具有用於定義目標的簡化介面,同時還支援儲存目標定義以供重複使用。如需有關在 Salt 中設定目標的詳細資訊,請參閱 Salt 目標設定參考

SaltStack Config 中的每個目標都包括名稱、Salt 主節點和目標準則,下面進行了詳細說明。

設定 說明
名稱

輸入目標名稱。目標名稱不必唯一。這可能會導致在 SaltStack Config 使用者介面中不同的項目以相同的名稱顯示。

所有 Salt 主節點

依預設,目標包括所有 Salt 主節點。但是,可以選擇將目標設為僅屬於特定 Salt 主節點的部屬節點。

例如,如果您的環境中包括多個負責執行特定應用程式的節點,並且已對 Salt 基礎結構進行磁碟分割以便這些機器全部連線至單一 Salt 主節點,則透過僅選取 Salt 主節點可以建立包括整個部屬節點子集的目標。

若要啟用依 Salt 主節點設定目標,請按一下選項按鈕來停用此設定。此時將顯示一組新的設定。

主節點欄位下,選取要將其部屬節點設為目標的 Salt 主節點。所有其他目標準則僅套用至與所選 Salt 主節點相關聯的部屬節點子集。

目標準則

目標是動態的,並且新的部屬節點會自動新增至任何相符的目標定義。如果您不希望將來包含會與動態目標相符的新部屬節點,請將目標儲存為清單。

可以使用目標準則指定一組部屬節點,請參閱以下欄位說明。

目標類型 說明
Grain (粒紋比對)

比對特定的 Grain 值,例如,osfullnameDebian。選取 Grain 後,會預先填入值清單,以便按一下欄位即可檢視可用選項或開始輸入。

使用 Grain 建立複合目標時,如果 Grain 名稱中含有空格,RaaS 不會傳回任何部屬節點。因此,任何空格都將自動轉換為 ?

Glob (萬用字元比對) 使用部屬節點識別碼的萬用字元比對。例如,可以輸入 webserver* 以選取多個部屬節點 (名為 webserver01webserver02webserver03)。
List (清單比對)

指定要包括在目標中的部屬節點清單。例如,dc3-north-db1,dc3-north-db2

如果不希望動態授與對目標的存取權,則指定清單非常有用。這會防止與動態目標準則相符的新部屬節點自動新增至目標。

Compound (複合比對)

合併多個目標介面,並以連接詞 and、or 和 not 分隔。

如果選取 [Compound] 作為首要準則,則必須遵循 Salt 目標設定參考中包括的目標設定語法,並且必須將任何次要準則包括在複合目標定義中。SaltStack Config 不允許在目標編輯器中新增任何其他準則。如需有關複合目標設定的詳細資訊,請參閱〈目標設定〉

建立目標的最佳做法

建立簡單的目標規則

儘管可以在 SaltStack Config 中建立的目標數量沒有任何限制,但請嘗試建立包含需要對其採取動作的所有機器的最簡單目標設定規則。

確定所需的使用案例

為工作建立目標之前,請從使用案例清單開始,以協助確定要使用的目標類型。例如,若要進行修補,可以使用 Grain 將特定作業系統設定為目標。下表包含目標群組、常見使用案例和建議目標類型的一些範例。
目標群組 使用案例 目標類型
作業系統
  • 修補
  • 發現或診斷
  • 標準合規性
Grain (粒紋比對)
應用程式叢集
  • 應用程式安裝
  • 導向合規性
  • 選擇性修補
  • 組態管理和偏差偵測或修復
Glob 或 List
資料中心、子網路、可用性區域或其他網路區段
  • 合規性
  • 網路或區域組態
Glob 或自訂 Grain
自訂方法
  • 核准或禁止的套件
  • 根據已安裝的應用程式是否存在進行使用者管理
  • 使用者帳戶
自訂 Grain

後續步驟

建立所需的目標後,可以建立工作,以便針對目標部屬節點執行工作和程序。如需詳細資訊,請參閱〈如何建立工作〉