SaltStack - 架构

SaltStack 的架构旨在与任意数量的服务器配合使用,从本地网络系统到跨不同数据中心的其他部署。架构是一个简单的服务器/客户端模型,所需的功能内置在一组守护进程中。

请看下图。它展示了 SaltStack 架构的不同组件。

Salt disk.usage
  • SaltMaster − SaltMaster 是主守护进程。SaltMaster 用于向 Salt 从属服务器发送命令和配置。单个主服务器可以管理多个主服务器。

  • SaltMinions − SaltMinion 是从属守护进程。 Salt minion 从 SaltMaster 接收命令和配置。

  • 执行 − 从命令行针对一个或多个 minion 执行的模块和临时命令。它执行实时监控。

  • 公式 − 公式是预先编写的 Salt States。它们与 Salt States 本身一样开放,可用于安装包、配置和启动服务、设置用户或权限以及许多其他常见任务。

  • Grains − Grains 是一个提供特定于 minion 的信息的接口。通过 Grains 接口可用的信息是静态的。Grains 在 Salt minion 启动时加载。这意味着 Grains 中的信息是不变的。因此,Grains 信息可能是关于正在运行的内核或操作系统的。它不区分大小写。

  • Pillar − Pillar 是一个接口,用于生成和存储特定于特定 minion 的高度敏感数据,例如加密密钥和密码。它将数据存储在键/值对中,数据的管理方式与 Salt State Tree 类似。

  • Top File − 将 Salt 状态和 Pillar 数据与 Salt minions 匹配。

  • Runners − 它是位于 SaltMaster 内部的一个模块,执行作业状态、连接状态、从外部 API 读取数据、查询连接的 salt minions 等任务。

  • Returners − 将数据从 Salt minions 返回到另一个系统。

  • Reactor −它负责在您的 SaltStack 环境中发生事件时触发反应。

  • SaltCloud − Salt Cloud 提供了强大的界面来与云主机交互。

  • SaltSSH − 无需使用 Salt minion 即可在系统上通过 SSH 运行 Salt 命令。

在下一章中,我们将详细了解 SaltStack 的各种竞争对手及其功能。