首页 文章

salt-master没有收到针对salt-minion的预定工作事件

提问于
浏览
0

我想请你帮忙 . 我使用saltstack作为奴隶(奴才)的工作调度员,我希望能够看到在奴才上解雇的主要工作事件 .

My setup

工作安排在盐师傅的使用支柱给予奴才 . 支柱是:

schedule_returner: mongo
schedule:
  cmd:
    function: cmd.run
    args:
      - date +%s >> /tmp/job_runs
    minutes: 1
    maxrunning: 1

在小兵身上执行预定作业没有任何问题 . 我可以看到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

生成此文件,我没有修改它 .

在minion日志中,我可以看到:

[DEBUG] SaltEvent PUB套接字URI:/var/run/salt/minion/minion_event_1fa42d8010_pub.ipc [DEBUG] SaltEvent PULL套接字URI:/var/run/salt/minion/minion_event_1fa42d8010_pull.ipc [DEBUG]为路径初始化新的IPCClient: /var/run/salt/minion/minion_event_1fa42d8010_pull.ipc [DEBUG]发送事件: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','fun':'cmd.run','id': 'vagrant.vm'} [DEBUG]“salt”的小号正在处理事件标记'__schedule_return'[DEBUG] 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 的输出是正确的,我可以看到此事件 .

Now my question is: 有没有办法在salt-master上听这个事件?

当我在master上运行几乎相同的命令时:

wget https://raw.github.com/saltstack/salt/develop/tests/eventlisten.py
sudo python eventlisten.py

我无法通过我的预定工作看到那些事件在小兵身上被开除 . 我这样做的动机是我在我的主人身上运行saltpad,我希望在最近的工作中看到我的预定工作(websockets ......) .

感谢您的任何帮助 .

1 回答

  • 0

    听取事件

    观看事件总线的最快方法是通过调用salt-master上的 state.event runner

    salt-run state.event pretty=True
    

    射击事件

    可以使用 event.send 执行功能触发从minion发送给master的事件:

    salt-call event.send '__schedule_return' '{success: True, message: "It works!"}'
    

    反应堆系统

    Salt的Reactor System能够触发操作以响应事件 . Reactor SLS文件和事件标记在主配置文件中关联(默认情况下为 /etc/salt/master/etc/salt/master.d/reactor.conf ) .

    在主配置部分'reactor:'中,您可以指定要匹配的事件标记列表 . 每个事件标记都可以包含要运行的reactor SLS文件的列表 .

    # Master config section "reactor"
    reactor:
      # Match tag "__schedule_return"
      - '__schedule_return':
        # Things to it matches the tag
        - /srv/reactor/do_stuff.sls
    

    有关盐反应器系统的更多信息,请参阅有关reactor system的文档 .

相关问题