SaltStack - 事件系统



Salt 中的事件系统是一个本地 ZeroMQ PUB 接口,它触发 Salt 事件。它由以下组件执行。

  • 事件套接字 − 用于发布事件。

  • 事件库 − 用于监听事件并将事件发送到 Salt 系统。

Salt Master 事件

Salt master 提供不同类型的事件,详述如下:

  • 身份验证事件
  • 启动事件
  • 密钥事件
  • 作业事件
  • Runner 事件
  • 存在事件
  • 云事件

让我们详细了解每种事件类型。

身份验证事件

当 minion 与 master 执行身份验证检查时,会触发这些身份验证事件。它由 salt/auth 表示。

启动事件

每当 minion 连接到 Salt master 时,都会触发启动事件,它由 salt/minion//start 表示。

密钥事件

当 Salt master 接受和拒绝 Salt minion 上的密钥时,会触发密钥事件。您可以使用 salt-key 命令访问此事件。

作业事件

每当新作业即将开始时,就会触发作业事件。它由 salt/job//new 表示。这里,JID - 作业 ID new - 新作业

Runner 事件

当 runner 开始执行时,会触发 runner 事件。它由 salt/run//new 表示。

存在事件

当 minion 连接或新连接或断开连接时,会定期触发此事件。它由 – salt/presence/presentsalt/presence/change 表示。这里:

  • Present − 表示 Salt master 当前已连接到 minion 列表。

  • Change − 用于检测新的 minion – 已连接或已断开连接。

云事件

salt-cloud 事件在虚拟机上触发。除非其他事件,否则它不会在 minion 上执行。您可以使用 – salt/cloud//creating 访问它。当 Salt cloud 开始虚拟机执行过程时,它会被触发。

事件工具

现在,让我们了解事件工具和脚本。您可以使用 CLI 访问事件总线。它可以通过以下命令访问。

salt-run state.event pretty = True

在这里,runner 旨在从外部工具和 shell 脚本与事件总线交互。Salt 的事件总线可以通过 REST API 远程访问。它由 – (示例 URL) 表示。

curl -SsNk https://salt-api.example.com:8000/events?token = 05A3.

同样,您也可以从 Python 脚本访问事件。

广告