
- SaltStack 教程
- SaltStack - 首頁
- SaltStack - 概述
- SaltStack - 架構
- SaltStack - 競爭對手
- SaltStack - 安裝
- 建立簡單的環境
- SaltStack - 訪問控制系統
- SaltStack - 作業管理
- SaltStack - Salt 檔案伺服器
- SaltStack - Git 作為檔案伺服器
- 使用 MinionFS 作為檔案伺服器
- SaltStack - 使用 Cron 與 Salt
- SaltStack - 遠端執行
- 配置管理
- SaltStack - 日誌記錄
- SaltStack - 透過 SSH 使用 Salt
- Salt 用於雲基礎設施
- SaltStack - Salt 代理 Minion
- SaltStack - 事件系統
- SaltStack - 編排
- SaltStack - Salt 軟體包管理器
- SaltStack - Python API
- SaltStack - 工作示例
- SaltStack 有用資源
- SaltStack - 快速指南
- SaltStack - 有用資源
- SaltStack - 討論
SaltStack - Salt 代理 Minion
有很多裝置,如路由器、網路裝置等,具有自定義作業系統、有限的記憶體和高度的安全考慮因素。在這些裝置中,我們無法安裝標準的salt-minion,因此無法管理這些系統。但是,Salt 提供了一種創新的技術來克服此限制。
Salt 有一個單獨的模組,salt 代理 minion,它使用遠端系統中執行的 REST 服務來控制遠端系統。此 REST 服務是一個基於 HTTP 的 Web 服務,使用表述性狀態轉移 (REST) 概念編寫,它們都易於實現且易於使用。
每個裝置都將擁有自己的 SDK 和開發環境來編寫複雜的應用程式。Salt 期望在裝置中根據 Salt 介面規範開發 REST 服務。Salt 還提供了一個 python 模組來編寫 REST Web 服務。如果裝置支援 python,那麼開發 REST Web 服務將很容易。
一旦 REST Web 服務在遠端系統中開發和部署,Salt 就可以配置為使用 REST Web 服務而不是 salt minion 來控制遠端裝置。
工作示例
讓我們使用一個即時工作環境來學習salt 代理 minion的概念。對於即時環境,我們為 master 和代理 minion 選擇了 Linux 系統。我們將使用 REST Web 服務而不是 salt-minion 來控制系統。
安裝和配置 REST Web 服務
Salt 提供了一個 REST Web 服務實現示例,在其 contrib 模組中命名為 proxyminion_rest_example。讓我們安裝示例 Web 服務。
使用 pip 安裝“bottle”。bottle 命令是一個用於開發 Web 應用程式的 python Web 框架。
pip install bottle = 0.12.8
從 github 下載saltstack/salt-contrib 專案。或者,使用以下命令克隆專案。
git clone https://github.com/saltstack/salt-contrib
開啟終端並轉到salt-contrib 目錄。
此 salt-contrib 目錄將有一個資料夾proxyminion_rest_example。此資料夾包含 REST Web 服務的示例實現。轉到 proxyminion_rest_example 資料夾。
執行以下命令啟動 REST Web 服務。
python rest.py --address <your ip address> --port 8000
開啟瀏覽器並載入 http://«您的 IP 地址»:8000。這將顯示預設頁面,其中包含服務和軟體包,如下面的螢幕截圖所示。

現在,我們已經配置了 REST Web 服務,它將檢查如何配置 salt 代理以查詢 REST Web 服務並控制系統。
配置 Salt-Proxy
要配置 Salt-Proxy,我們必須按照以下步驟操作。
我們必須為 salt-proxy 指定 master 節點。編輯代理配置檔案位置,位於 /etc/salt/proxy 中,並輸入以下程式碼。
master: <your ip address>
修改/建立基本 pillar 檔案,位於/srv/pillar/top.sls 中,如下面的程式碼塊所示。
base: 'p8000': - p8000
新增一個新的 pillar 檔案p8000.sls,位於/srv/pillar 中,如下面的程式碼塊所示。
proxy: proxytype: rest_sample url: http://<your ip address>:8000
使用以下命令在除錯模式下啟動 salt-proxy。
salt-proxy --proxyid = p8000 -l debug
與 salt-minion 類似,接受salt-proxy 金鑰,如下所示。
salt-key -y -a p8000 The following keys are going to be accepted: Unaccepted Keys: p8000 Key for minion p8000 accepted.
執行 Salt
現在,執行salt 命令並呼叫ping.test 函式,如下所示。
salt p8000 test.ping
我們可以透過使用salt 執行 REST Web 服務支援的任何函式,這與salt-minion 類似。
例如,可以使用以下命令獲取 grain 資訊。
salt p8000 grains.items