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/present 和 salt/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 脚本访问事件。