SaltStack事件驱动(2) – 自定义事件

除了内置事件,你可以在Salt系统中启用一些其他事件,以及生成你自己的事件。

presence事件

激活presence事件会使master定期地查找主动连接的minions。presence事件以一定的间隔在事件总线上触发,事件包含已连接minions列表,以及新连接或已断开的minions列表。
在salt master配置文件中激活:

  1. presence_events: True

salt state事件

激活salt state事件会使在salt state完成每一个函数时发送进度事件。
在salt master配置文件中激活:

  1. state_events: True

完成一个state后触发事件

如果你的作业配置包含多个salt state,你可以增加fire_event参数以使每一个salt state完成后触发一个事件:

  1. nano installed:
  2.   pkg.installed:
  3.     - name: nano
  4.     - fire_event: True

或者你可以将True替换为自定义事件字符串,该字符串将附加到触发的事件:

  1. nano installed:
  2.   pkg.installed:
  3.     - name: nano
  4.     - fire_event: nano/installed

触发一个自定义事件

你也可以直接在命令行指定一个自定义事件tag和事件数据直接触发一个事件。在你的其中一个salt minions运行如下命令:

  1. salt-call event.send /my/test/event '{"data": "my event test"}'

输出类似如下:

  1. /my/test/event  {
  2.     "_stamp": "2016-02-05T18:24:47.001310",
  3.     "cmd": "_minion_event",
  4.     "data": {
  5.         "__pub_fun": "event.send",
  6.         "__pub_jid": "20160205182446924651",
  7.         "__pub_pid": 1933,
  8.         "__pub_tgt": "salt-call",
  9.         "data": "my event test"
  10.     },
  11.     "id": "minion1",
  12.     "tag": "/my/test/event"
  13. }
标签:SaltStack 发布于:2019-11-20 11:25:53