作為安裝後程序的一部分,需要安裝、設定和升級主節點外掛程式。透過主節點外掛程式,Salt 主節點能夠與 Automation Config 進行通訊。主節點外掛程式包括各種設定,您可以調整這些設定以改進效能,這對於大型環境或忙碌環境特別有用。
通常,會在環境中與 Automation Config 進行通訊的每個 Salt 主節點上安裝主節點外掛程式。例如,如果使用具有多個 Salt 主節點的組態 (有時稱為多主節點設定),則必須在每個 Salt 主節點上安裝主節點外掛程式。
開始之前
安裝並設定主節點外掛程式是一系列步驟中的一個安裝後步驟,這些步驟應按特定順序執行。首先,完成其中一個安裝案例,然後閱讀〈安裝授權金鑰〉安裝後頁面。
如果您位於非氣隙環境中,則相依性會隨主節點外掛程式一起自動安裝。對於氣隙環境,請參閱知識庫文章在氣隙系統上安裝 Salt 主節點外掛程式。
何時需要安裝主節點外掛程式?
Automation Config 全新安裝完成後,需要在所有 Salt 主節點上安裝主節點外掛程式。在不需要與 Automation Config 進行通訊的 Salt 主節點上,主節點外掛程式不是必要的。
如果使用在節點少於 1000 個的情況下安裝 SaltStack Config 安裝案例,則無需在已安裝 Automation Config 及其相關架構的節點上安裝主節點外掛程式。安裝程式會自動在 Salt 主節點上安裝主節點外掛程式。但是,僅在執行此安裝程式的 Salt 主節點上安裝主節點外掛程式。如果您有多個主節點,則仍需要在其他主節點上安裝主節點外掛程式。
如果您要手動安裝 Automation Config (不建議),應在安裝主節點外掛程式前完成以下步驟:
- 安裝和設定 PostgreSQL 資料庫
- 安裝和設定 Redis 資料庫
- 啟用 SSL (可選)
# sseapi-config --default >/tmp/raas.conf # cd /etc/salt/master.d # vim -d raas.conf /tmp/raas.conf ...
如果已使用 onedir 安裝 Salt,則此可執行檔的路徑為 /opt/saltstack/salt/extras-3.10/bin/sseapi-config。
使用主節點外掛程式工作區安裝主節點外掛程式
可以從 Automation Config 使用者介面,導航至 ,下載並安裝最新的主節點外掛程式版本。從「主節點外掛程式」索引標籤,可以下載外掛程式或下載用戶端。
下載主節點外掛程式後,必須設定主節點外掛程式。
使用 CLI 安裝主節點外掛程式
在 Salt 主節點上安裝主節點外掛程式:
從 8.13.0 版本開始,主節點外掛程式包括一個 tgtmatch 引擎,該引擎現在可將目標群組比對從 RaaS 伺服器卸載至 Salt 主節點。建議啟用並設定 tgtmatch 引擎,以使目標群組比對回應速度更快,尤其是在具有以下條件的環境中:
- 大量目標群組 (100 個或更多)
- 大量部屬節點 (3000 個或更多)
- 頻繁變更部屬節點 Grain (每日或更頻繁)
- 頻繁建立和刪除部屬節點 (每日或更頻繁)
target_groups_from_master_only: true
- 登入 Salt 主節點。
- 如有必要,請從 Customer Connect 下載主節點外掛程式 wheel。
主節點外掛程式包含在自動安裝程式 .tar.gz 檔案中。下載並擷取 .tar.gz 檔案後,可以在
sse-installer/salt/sse/eapi_plugin/files
目錄中找到主節點外掛程式。 - 手動解除安裝並重新安裝更新的 Python wheel 以升級主節點外掛程式。使用以下範例命令,取代 wheel 檔案的確切名稱:
備註: 必須解除安裝現有外掛程式,以防止 sseapi-config 的多個執行個體。
pip3 uninstall SSEAPE-8.12.1.3-py3-none-any.whl mv /etc/salt/master.d/raas.conf /tmp salt-call pip.install SSEAPE-8.12.1.3-py3-none-any.whl cp /tmp/raas.conf /etc/salt/master.d/raas.conf systemctl restart salt-master
設定主節點外掛程式
在安裝主節點外掛程式後設定 Salt 主節點:
- 登入 Salt 主節點並確認
/etc/salt/master.d
目錄是否存在,或建立該目錄。 - 產生主節點組態設定。
注意: 如果您要在升級安裝時保留設定,請備份現有主節點外掛程式組態檔後再執行此步驟。然後,將現有組態中的相關設定複製到新產生的檔案。
sudo sseapi-config --all > /etc/salt/master.d/raas.conf
重要: 如果已使用 onedir 安裝 Salt,則此可執行檔的路徑為 /opt/saltstack/salt/extras-3.10/bin/sseapi-config。 - 編輯產生的
raas.conf
檔案,並按以下方式更新值:值 說明 sseapi_ssl_validate_cert
驗證 API (RaaS) 使用的憑證。預設值為
True
。如果使用的是自己的 CA 核發憑證,請將此值設定為
True
,然後設定sseapi_ssl_ca
、sseapi_ssl_cert
和sseapi_ssl_cert:
設定。否則,請將此值設定為
False
,從而不驗證憑證。sseapi_ssl_validate_cert:False
sseapi_server
RaaS 節點的 HTTP IP 位址,例如
http://example.com
或https://example.com
(如果 SSL 已啟用)。sseapi_command_age_limit
設定略過可能失效的舊工作之前的存留期 (以秒為單位)。例如,若要略過超過一天的工作,請設定為:
sseapi_command_age_limit:86400
略過的工作繼續存在於資料庫中,並且在 Automation Config 使用者介面中顯示
Completed
狀態。某些環境可能需要 Salt 主節點長時間處於離線狀態,並且需要 Salt 主節點在重新上線後執行已排入佇列的任何工作。如果您的環境適用此情況,請將存留期限制設定為
0
。sseapi_windows_minion_deploy_delay
設定延遲以允許所有必要的 Windows 服務變為作用中狀態。預設值為 180 秒。 sseapi_linux_minion_deploy_delay
設定延遲以允許所有必要的 Linux 服務變為作用中狀態。預設值為 90 秒。 sseapi_local_cache load: 3600 tgt: 86400 pillar: 3600 exprmatch: 86400 tgtmatch: 86400
設定某些資料在每個 Salt 主節點上本機快取的時間長度。值以秒為單位。範例值是建議值。
-
load- salt save_load() 裝載
-
tgt- SSE 目標群組
-
pillar - SSE pillar 資料 (已加密)
-
exprmatch- SSE 目標運算式比對資料
-
tgtmatch- SSE 目標群組比對資料
-
- 可選:僅手動安裝需要執行此步驟。若要確認在連線主節點外掛程式前可以連線至 SSL,請編輯產生的
raas.conf
檔案以更新下列值。如果不更新這些值,主節點外掛程式會使用預設產生的憑證。值 說明 sseapi_ssl_ca
CA 檔案的路徑。 sseapi_ssl_cert
憑證的路徑。預設值為 /etc/pki/raas/certs/localhost.crt
。sseapi_ssl_key
憑證私密金鑰的路徑。預設值為 /etc/pki/raas/certs/localhost.key
。id
透過在開頭處新增 #
,註解此行標記。這不是必要的。 - 可選:更新與效能相關的設定。對於大型或忙碌的環境,可以透過調整以下設定來提升 Salt 主節點與 Automation Config 之間的通訊效能。
- 設定主節點外掛程式引擎:
主節點外掛程式
eventqueue
和rpcqueue
引擎會將與 Automation Config 的某些通訊從效能關鍵型代碼路徑卸載至專用程序。當引擎正在等待與 Automation Config 通訊時,會將裝載儲存在 Salt 主節點的本機檔案系統中,以便資料能夠在 Salt 主節點重新啟動過程中保持不變。tgtmatch
引擎會將部屬節點目標群組比對的計算從 RaaS 伺服器移至 Salt 主節點。若要啟用引擎,請確保 Salt 主節點外掛程式組態檔 (raas.conf) 中存在下列設定:
engines: - sseapi: {} - eventqueue: {} - rpcqueue: {} - jobcompletion: {} - tgtmatch: {}
若要設定
eventqueue
引擎,請確認存在以下設定:sseapi_event_queue: name: sseapi-events strategy: always push_interval: 5 batch_limit: 2000 age_limit: 86400 size_limit: 35000000 vacuum_interval: 86400 vacuum_limit: 350000
可以根據佇列參數的共同運作方式來調整這些參數。例如,假設 Salt 事件匯流排上每秒平均有 400 個事件,上述設定允許在最早事件因大小或存留期限制而遭到捨棄之前,在 Salt 主節點上收集大約 24 小時的已排入佇列的事件流量。
若要設定
rpcqueue
引擎,請驗證 raas.conf 中的以下設定:sseapi_rpc_queue: name: sseapi-rpc strategy: always push_interval: 5 batch_limit: 500 age_limit: 3600 size_limit: 360000 vacuum_interval: 86400 vacuum_limit: 100000
若要設定 tgtmatch 引擎,請確保主節點外掛程式組態檔 (/etc/salt/master.d/raas.conf) 中存在以下設定:engines: - sseapi: {} - eventqueue: {} - rpcqueue: {} - jobcompletion: {} - tgtmatch: {} sseapi_local_cache: load: 3600 tgt: 86400 pillar: 3600 exprmatch: 86400 tgtmatch: 86400 sseapi_tgt_match: poll_interval: 60 workers: 0 nice: 19
備註: 若要在 Salt 主節點上利用目標比對,RaaS 組態中還必須存在以下組態設定:target_groups_from_master_only: true
。 - 限制部屬節點粒紋裝載大小:
sseapi_max_minion_grains_payload: 2000
- 啟用略過早於定義時間 (以秒為單位) 的工作。例如,使用
86400
會設定為略過一天前的工作。如果設定為0
,將停用此功能:sseapi_command_age_limit:0
備註:在系統升級期間,啟用此設定有助於防止儲存在資料庫中的舊命令意外執行。
Salt 中的事件佇列以及 Salt 主節點外掛程式中的佇列引擎、Salt 主節點目標比對、Grain 裝載大小限制和命令存留期限制共同增加了輸送量,並減少了在對效能最敏感的代碼路徑中 Salt 主節點與 Automation Config 之間的通訊延遲。
- 設定主節點外掛程式引擎:
- 重新啟動主節點服務。
sudo systemctl restart salt-master
- 可選:您可能想要執行測試工作,以確保主節點外掛程式現已啟用主節點與 RaaS 節點之間的通訊。
salt -v '*' test.ping
即使未顯示任何活動,例如未連線部屬節點,也可能表示組態正確無誤。
組態設定參考
組態檔中的這些設定可讓每個 Salt 主節點連線至 API (RaaS)。您可以在 /etc/salt/master.d/raas.conf
組態檔中找到這些設定。
raas.conf 檔案中的 Salt 主節點設定優先於 /etc/salt/master
中的現有設定。如果已自訂 /etc/salt/master
中的 fileserver_backend
或 ext_pillar
設定,則需要手動合併這些設定,以便這些設定僅顯示在一個檔案中。可以選擇性地對後端進行重新排序,以變更優先順序。
下表說明了一般組態設定:
選項 | 說明 |
---|---|
id |
Salt 主節點識別碼,如果未設定,則自動產生 |
sseapi_server |
SSEAPI 伺服器的 URL,例如 https://sse.example.com:443 |
engines |
要啟用的 Salt 引擎,建議使用 sseapi 、eventqueue 、rpcqueue 、jobcompletion 。 |
master_job_cache |
使用 sseapi ,以使用 Automation Config 主節點工作快取 |
event_return |
Salt 事件傳回程式,建議使用 sseapi ,以使用 Automation Config 事件傳回程式 |
ext_pillar |
外部 pillar 來源,建議使用 sseapi |
fileserver_backend |
檔案伺服器後端,建議使用 sseapi 和 roots |
sseapi_update_interval |
從檔案伺服器更新的頻率 (以秒為單位,預設為 60) |
sseapi_poll_interval |
輪詢 Automation Config 以取得新資料的頻率 (以秒為單位,預設為 30) |
sseapi_jce_poll_interval |
增加了 jobcompletion 引擎中反覆運算之間的延遲,因此,每個 Salt 主節點每天最多傳送 5760 個 find_job 命令 (以秒為單位,預設為 15) |
sseapi_timeout |
API (RaaS) 呼叫逾時 (以秒為單位,預設為 200) |
sseapi_key_rotation |
Salt 主節點 Automation Config 驗證金鑰輪替間隔 (以秒為單位,預設為 86400) |
sseapi_cache_pillar |
是否在 Automation Config 內快取 pillar 資料 (True 或 False,預設為 False) |
sseapi_cluster_id |
(可選) Salt 主節點叢集名稱,用於在 Automation Config 中將 Salt 主節點分組到叢集 |
sseapi_failover_master |
此 Salt 主節點是否為容錯移轉 Salt 主節點 (True 或 False,預設為 False) |
sseapi_command_age_limit |
是否略過早於定義時間的 API (RaaS) 命令 (以秒為單位,0 表示停用,預設為 0) |
下表說明了 SSL 設定:
選項 | 說明 |
---|---|
sseapi_ssl_key |
憑證私密金鑰的路徑 |
sseapi_ssl_cert |
憑證的路徑 |
sseapi_ssl_validate_cert |
是否驗證 Automation Config SSL 憑證 (True 或 False,預設為 True) |
下表說明了顯示在 sseapi_event_queue
標題下的事件佇列引擎設定:
選項 | 說明 |
---|---|
name |
事件佇列名稱 (預設為 sseapi-events ,無需變更此項) |
strategy |
將事件排入佇列的時間 (always 、on_failure 或 never ,預設為 never ) |
push_interval |
將事件推送至 Automation Config 的頻率 (以秒為單位,預設為 5) |
batch_limit |
每個間隔推送至 Automation Config 的事件數目上限 (預設為 2000) |
age_limit |
已排入佇列的事件存留期上限;捨棄最早的事件 (以秒為單位,預設為 86400) |
size_limit |
佇列大小上限;捨棄最早的事件 (事件數,預設為 35000000) |
vacuum_interval |
對佇列資料庫執行 vacuum 操作的頻率 (以秒為單位,預設為 86400) |
vacuum_limit |
對佇列資料庫執行 vacuum 操作時的佇列大小上限 (事件數,預設為 350000) |
下表說明了顯示在 sseapi_rpc_queue
標題下 RPC 佇列引擎設定:
選項 | 說明 |
---|---|
name |
事件佇列名稱 (預設為 sseapi-rpc ,無需變更此項) |
strategy |
將事件排入佇列的時間 (always 、on_failure 或 never ,預設為 never ) |
push_interval |
將呼叫傳送至 Automation Config 的頻率 (以秒為單位,預設為 5) |
batch_limit |
每個間隔推送至 Automation Config 的呼叫數目上限 (預設為 500) |
age_limit |
已排入佇列的呼叫存留期上限;捨棄最早的項目 (以秒為單位,預設為 3600) |
size_limit |
佇列大小上限;捨棄最早的項目 (事件數,預設為 360000) |
vacuum_interval |
對佇列資料庫執行 vacuum 操作的頻率 (以秒為單位,預設為 86400) |
vacuum_limit |
對佇列資料庫執行 vacuum 操作時的佇列大小上限 (項目數,預設為 100000) |
sseapi_tgt_match
標題下的目標比對引擎設定:
選項 | 說明 |
---|---|
poll_interval | 引擎從 RaaS 要求更新目標群組資訊的頻率 (以秒為單位) (預設為 60) |
workers | 應建立多少工作程式以執行目標群組比對計算。預設值 (0) 會為每個 CPU 核心建立一個程式,上限為 8。 |
nice | 目標群體匹配工人的優先順序。預設值 (19) 為 Worker 提供最低排程優先順序,以防止干擾 Salt 主節點上執行的其他程式。 |
下表說明了路徑設定。產生初始組態後,請謹慎變更這些設定。模組將透過安裝程序複製到這些目錄中。但是,新增額外路徑不會造成不利影響。
選項 | 說明 |
---|---|
beacons_dirs |
指標外部模組路徑 |
engines_dirs |
引擎外部模組路徑 |
fileserver_dirs |
檔案伺服器外部模組路徑 |
pillar_dirs |
pillar 外部模組路徑 |
returner_dirs |
傳回程式外部模組路徑 |
roster_dirs |
名冊外部模組路徑 |
runner_dirs |
執行器外部模組路徑 |
module_dirs |
Salt 外部模組路徑 |
proxy_dirs |
Proxy 外部模組路徑 |
metaproxy_dirs |
中繼 Proxy 外部模組路徑 |
states_dirs |
狀態外部模組路徑 |
後續步驟
安裝並設定主節點外掛程式後,必須完成其他安裝後步驟。下一步是設定 RaaS 節點。若要繼續執行安裝後程序,請參閱檢查 RaaS 組態檔。