SaltStack Config 包含四个或更多架构组件,包括 RaaS 服务器、主节点插件和两个中央数据库。
下图显示了与安装相关的基本 SaltStack Config 架构的主要组件:
Salt 主节点和主节点插件
SaltStack Config 由 Salt 提供支持,Salt 是一个开源配置管理和自动化系统。
Salt 主节点是在 SaltStack Config 与网络中的其余节点(工作节点)之间建立连接的主要组件。从 SaltStack Config 发出命令(例如作业)时,该命令会转到 Salt 主节点以分发到目标工作节点。
SaltStack Config 可以根据系统需要连接到一个或多个 Salt 主节点。要使 SaltStack Config 与 Salt 主节点通信,必须在 Salt 主节点上安装主节点插件,并在 SaltStack Config 中接受其密钥。主节点插件使 Salt 主节点可以访问由 SaltStack Config 启动的作业或进程。Salt 主节点可以访问存储在 PostgreSQL 数据库中的外部文件和 pillar 数据。
RaaS
RaaS(表示返回程序即服务)是 SaltStack Config 中的重要组件。事实上,当有些人提及 SaltStack Config 本身时,他们通常谈论的是 RaaS。
RaaS 提供 RPC 端点,用于从 SaltStack Config 用户界面接收管理命令,还提供 RPC 控制端点,用来与已连接的 Salt 主节点进行交互。所有通信都通过 WebSockets 或 HTTP(s) 使用 RPC API 调用发送。
SaltStack Config 用户界面
SaltStack Config 用户界面是一个 Web 应用程序,为 RaaS 提供了图形用户界面前端。虽然 SaltStack Config 为 API 优先,但用户界面可直接与 API (RaaS) 交互,从而简化了对环境中所有系统的管理工作。用户可以利用不同的工作区管理工作节点、用户、角色、作业等。
数据库
PostgreSQL 数据库
RaaS 使用 PostgreSQL 数据库来存储工作节点数据、作业返回数据、事件数据、文件和 pillar 数据、本地用户帐户以及用户界面的其他设置。
Redis 数据库
RaaS 使用 Redis 数据库将某些类型的数据存储在临时存储中,例如缓存数据。此外,它还使用临时数据存储将排队的工作分发给后台工作线程。
有关 Salt 工作原理的详细信息,请参见 Salt 系统架构。