- 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