2017-02-22 5 views
0

Ich möchte Sie um Hilfe bitten. Ich benutze salztack als Job-Scheduler für Sklaven (Minions) und ich würde gerne in der Lage sein, auf Master-Job-Events zu sehen, die auf Minion gefeuert werden.salt-master erhält kein geplantes Jobereignis, das auf salz-minion ausgelöst wird

Mein Setup

Job auf Salz-Master geplant, eine Säule für gegebenes Günstling verwenden. Pillar ist:

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

Geplanter Job wird auf Minion ohne Probleme ausgeführt. Ich kann zurückgegebene Daten in mongodb und einen neuen Zeitstempel in meiner Dummy-Datei /tmp/job_runs sehen. Die Konfigurationsdatei auf Günstling /etc/salt/minion.d/_schedule.conf ist:

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 

Diese Datei generiert wurde, und ich habe es nicht ändern.

In Günstling log ich sehen kann:

[DEBUG] SaltEvent PUB Buchse URI: /var/run/salt/minion/minion_event_1fa42d8010_pub.ipc [DEBUG] SaltEvent PULL-Buchse URI:/var/run/salt/minion/minion_event_1fa42d8010_pull.ipc [DEBUG] IPCClient für Pfad initialisieren: /var/run/salt/minion/minion_event_1fa42d8010_pull.ipc [DEBUG] Ereignis senden: tag = __schedule_return; data = {'fun_args': ['Datum +% s'/tmp/job_runs '],' jid ':' req ',' return ': ' ',' retcode ': 0,' Erfolg ': True, 'Zeitplan': 'cmd', 'cmd': '_return', 'pid': 10264, '_stamp': '2017-02-22T10: 03: 05.750874', 'Spaß': 'cmd.run', 'id': 'vagrant.vm'} [DEBUG] Minion von "Salz" ist der Umgang mit Ereignis-Tag '__schedule_return'
[DEBUG] schedule.handle_func: Entfernen von/var/cache/Salz/Günstling/proc/20170222100305532940 [ DEBUG] LazyLoaded mongo.returner

Jetzt bin ich daran interessiert, diese Ereignisse mit dem Tag __schedule_return zu hören. Auf Günstling, kann ich die folgenden Befehle ausführen:

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

Der Ausgang des eventlisten.py korrekt ist und ich dieses Ereignis sehen.

Jetzt ist meine Frage: Gibt es eine Möglichkeit, diese Ereignisse auf Salz-Master zu hören?

Wenn ich laufe fast die gleichen Befehle auf Master:

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

ich nicht in der Lage bin, diese Ereignisse auf Günstling von meinem geplanten Job gefeuert zu sehen. Meine Motivation, dies zu tun, ist, dass ich auf meinem Master Salzwiese leite und ich möchte meine geplanten Jobs in den letzten Jobs sehen (Websockets ...).

Vielen Dank für jede Hilfe.

Antwort

0

für Listening Events

Der schnellste Weg, um das Ereignis Bus zu sehen ist, indem die state.event runner auf Sie Salz-Master Aufruf:

salt-run state.event pretty=True 

Feuerungsereignisse

Es ist möglich, ein Ereignis feuern zu aus dem Diener mit der event.send Ausführungsfunktion zum Master gesendet werden:

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

Reaktorsystem

Salt's Reactor System bietet die Möglichkeit, Aktionen als Reaktion auf ein Ereignis auszulösen. Reactor SLS-Dateien und Event-Tags sind in der Master-Konfigurationsdatei (standardmäßig /etc/salt/master oder /etc/salt/master.d/reactor.conf) verknüpft.

Im Hauptkonfigurationsabschnitt 'reactor:' können Sie eine Liste der zu treffenden Ereignisvariablen angeben. Jedes Ereignis-Tag kann eine Liste von Reaktor-SLS-Dateien enthalten, die ausgeführt werden sollen.

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

finden Sie in der Dokumentation über die reactor system für weitere Informationen über Reaktorsystem Salz.

Verwandte Themen