除了内置事件,你可以在Salt系统中启用一些其他事件,以及生成你自己的事件。
presence事件
激活presence事件会使master定期地查找主动连接的minions。presence事件以一定的间隔在事件总线上触发,事件包含已连接minions列表,以及新连接或已断开的minions列表。
在salt master配置文件中激活:
salt state事件
激活salt state事件会使在salt state完成每一个函数时发送进度事件。
在salt master配置文件中激活:
完成一个state后触发事件
如果你的作业配置包含多个salt state,你可以增加fire_event参数以使每一个salt state完成后触发一个事件:
- nano installed:
- pkg.installed:
- - name: nano
- - fire_event: True
或者你可以将True替换为自定义事件字符串,该字符串将附加到触发的事件:
- nano installed:
- pkg.installed:
- - name: nano
- - fire_event: nano/installed
触发一个自定义事件
你也可以直接在命令行指定一个自定义事件tag和事件数据直接触发一个事件。在你的其中一个salt minions运行如下命令:
- salt-call event.send /my/test/event '{"data": "my event test"}'
输出类似如下:
- /my/test/event {
- "_stamp": "2016-02-05T18:24:47.001310",
- "cmd": "_minion_event",
- "data": {
- "__pub_fun": "event.send",
- "__pub_jid": "20160205182446924651",
- "__pub_pid": 1933,
- "__pub_tgt": "salt-call",
- "data": "my event test"
- },
- "id": "minion1",
- "tag": "/my/test/event"
- }