- SaltStack 教程
- SaltStack - 首頁
- SaltStack - 概述
- SaltStack - 架構
- SaltStack - 競爭對手
- SaltStack - 安裝
- 建立簡單的環境
- SaltStack - 訪問控制系統
- SaltStack - 作業管理
- SaltStack - Salt 檔案伺服器
- SaltStack - 使用 Git 作為檔案伺服器
- 使用 MinionFS 作為檔案伺服器
- SaltStack - 使用 Salt 與 Cron
- SaltStack - 遠端執行
- 配置管理
- SaltStack - 日誌記錄
- SaltStack - 透過 SSH 使用 Salt
- 用於雲基礎設施的 Salt
- SaltStack - Salt 代理 Minion
- SaltStack - 事件系統
- SaltStack - 編排
- SaltStack - Salt 包管理器
- SaltStack - Python API
- SaltStack - 工作示例
- SaltStack 有用資源
- SaltStack - 快速指南
- SaltStack - 有用資源
- SaltStack - 討論
SaltStack - 訪問控制系統
訪問控制系統為使用者或組提供執行任務的許可權選項。Salt 訪問控制系統用於配置對非管理員控制介面的訪問。您可以將此過程應用於所有系統。此控制幫助非管理員使用者執行 Salt 命令。
Salt 介面有以下三種類型:
- 釋出者 ACL 系統
- 外部認證系統
- 對等系統
讓我們詳細瞭解每個介面。
釋出者 ACL 系統
釋出者 ACL 系統允許除 root 使用者以外的使用者從主伺服器上執行 Minion 的 Salt 命令。釋出者 ACL 系統透過**publisher_acl**配置選項在主伺服器配置檔案中配置。其定義如下:
publisher_acl:
user1:
- .*
user2:
- web*:
- test.*
- pkg.*
這裡:
**user1** 允許執行任何操作。
**user2** 允許使用**test**和**pkg**,但僅限於“web*” Minion。
外部認證系統
**外部認證系統**用於透過外部授權系統(如**PAM、LDAP**等)提供執行特定 Minion 上 Salt 命令的訪問許可權。此配置檔案在主檔案中定義,如下所示。
external_auth:
pam:
user1:
- 'web*':
- test.*
- network.*
user2:
- .*
這裡:
**user1** 允許在與**web***目標匹配的 Minion 上執行**test**和**network模組**中的函式。
**user2** 允許執行所有函式。
在命令中啟用外部認證系統
Salt 伺服器提供一個“–a”選項來啟用外部身份驗證。
salt -a pam web\* test.ping
這裡,**-a pam**選項用於啟用 PAM 外部身份驗證。每次執行命令時,Salt 伺服器都會要求提供身份驗證詳細資訊。為了限制 Salt 伺服器僅在第一次詢問身份驗證詳細資訊,可以使用 T 選項。此**-T 選項**會快取接下來的 12 小時(預設設定)的身份驗證詳細資訊,並用其來驗證使用者身份。
salt -T -a pam web\* test.ping
對等系統
Salt Minion 可以使用對等介面傳遞命令。對等介面透過主配置檔案進行配置,允許 Minion 使用**peer**配置部分從主伺服器傳送命令,或允許 Minion 使用主伺服器上的**peer_run**配置執行執行程式。
讓我們詳細瞭解這兩種配置。
對等配置
在主檔案中定義的簡單配置如下:
peer:
.*:
- .*
這裡,它為所有 Minion 啟用了通訊,但這隻推薦用於非常安全的環境。
要將 Minion 分配給特定的 ID,需要按如下所示定義配置:peer:
.*domain.com: - test.*
peer_run 配置
此配置允許 Minion 使用主檔案上的 peer_run 選項從主伺服器執行執行程式。以下示例允許訪問所有 Minion 和所有執行程式。
peer_run:
.*:
- .*
要將 Minion 分配給特定 ID,需要按如下所示定義配置:
peer_run:
.*domain.com:
- test.*
如何執行命令
要在所有 Minion 上執行**test.ping**,請使用**salt-call**命令以及**publish.publish**模組。
salt-call publish.publish \* test.ping
要執行**runner**,請使用**salt-call**命令以及**publish.runner**模組。
salt-call publish.runner manage.up