SaltStack - 事件系统

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

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

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

Salt Master 事件

Salt Master 提供不同类型的事件,下面将详细说明 −

  • 身份验证事件
  • 开始事件
  • 关键事件
  • 作业事件
  • 运行器事件
  • 存在事件
  • Cloud 事件

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

身份验证事件

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

启动事件

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

密钥事件

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

作业事件

每当要启动新作业时,都会触发作业事件。它由 salt/job//new 表示。这里,JID - 作业 ID new - 新作业

运行器事件

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

Presence 事件

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

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

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

Cloud 事件

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

事件工具

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

salt-run state.event pretty = True

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

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

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