【发布时间】:2017-02-22 10:43:27
【问题描述】:
我想请你帮忙。我使用 saltstack 作为从属(minion)的作业调度程序,我希望能够看到在 minion 上触发的主作业事件。
我的设置
工作安排在 salt-master 上,使用给定仆从的支柱。支柱是:
schedule_returner: mongo
schedule:
cmd:
function: cmd.run
args:
- date +%s >> /tmp/job_runs
minutes: 1
maxrunning: 1
计划的作业在 minion 上执行没有任何问题。我可以在 mongodb 中看到返回的数据,并在我的虚拟文件 /tmp/job_runs 中看到新的时间戳。 minion/etc/salt/minion.d/_schedule.conf上的配置文件为:
schedule:
__mine_interval: {enabled: true, function: mine.update, jid_include: true, maxrunning: 2, minutes: 60, return_job: false}
cmd:
args: [date +%s >> /tmp/job_runs]
function: cmd.run
maxrunning: 1
minutes: 1
这个文件是生成的,我没有修改。
在奴才日志中我可以看到:
[DEBUG] SaltEvent PUB 套接字 URI: /var/run/salt/minion/minion_event_1fa42d8010_pub.ipc [调试] SaltEvent PULL 套接字 URI:/var/run/salt/minion/minion_event_1fa42d8010_pull.ipc [调试] 为路径初始化新的 IPCClient:/var/run/salt/minion/minion_event_1fa42d8010_pull.ipc [调试] 发送事件:tag = __schedule_return; data = {'fun_args': ['date +%s >> /tmp/job_runs'], 'jid': 'req', 'return': '', 'retcode': 0, 'success': True, 'schedule': 'cmd', 'cmd': '_return', 'pid': 10264, '_stamp': '2017-02-22T10:03:05.750874', '乐趣':'cmd.run','id':'vagrant.vm'} [调试] "salt" 的 Minion 正在处理事件标签 '__schedule_return'
[调试] schedule.handle_func:删除 /var/cache/salt/minion/proc/20170222100305532940 [DEBUG] LazyLoaded mongo.returner
现在我有兴趣收听带有标签__schedule_return 的那些事件。
在 minion 上,我可以运行以下命令:
wget https://raw.github.com/saltstack/salt/develop/tests/eventlisten.py
sudo python eventlisten.py -n minion
eventlisten.py 的输出是正确的,我可以看到这个事件。
现在我的问题是:有没有办法在 salt-master 上收听这些事件?
当我在 master 上运行几乎相同的命令时:
wget https://raw.github.com/saltstack/salt/develop/tests/eventlisten.py
sudo python eventlisten.py
我无法看到我计划的工作在 minion 上触发的那些事件。 我这样做的动机是我在我的主人上运行 saltpad,我希望在最近的作业(websockets...)中查看我的预定作业。
感谢您的帮助。
【问题讨论】: