2017-02-22 1 views
0

Je voudrais vous demander de l'aide. J'utilise salttack comme un planificateur de travail pour les esclaves (minions) et je voudrais être en mesure de voir sur les événements de travail maître tiré sur minion.salt-master ne reçoit pas l'événement de travail planifié tiré sur salt-minion

Ma configuration

Job est prévue pour le maître de sel à l'aide d'un pilier pour sbire donné. Le pilier est:

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

Le travail planifié est exécuté sans problème sur le serveur. Je peux voir les données retournées dans mongodb et un nouvel horodatage dans mon fichier fictif /tmp/job_runs. Le fichier de configuration sur sbire /etc/salt/minion.d/_schedule.conf est:

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 

Ce fichier a été généré et je ne le modifier.

Dans sbire journal je peux voir:

[DEBUG] SaltEvent URI socket PUB: /var/run/salt/minion/minion_event_1fa42d8010_pub.ipc [DEBUG] URI socket SaltEvent PULL:/var/run/salt/minion/minion_event_1fa42d8010_pull.ipc [DEBUG] Initialisation du nouveau IPCClient pour le chemin: /var/run/salt/minion/minion_event_1fa42d8010_pull.ipc [DEBUG] Evénement d'envoi: tag = __schedule_return; data = {'fun_args': ['date +% s >>/tmp/job_runs'], 'jid': 'req', 'return': '', 'retcode': 0, 'succès': Vrai, 'schedule': 'cmd', 'cmd': '_return', 'pid': 10264, '_stamp': '2017-02-22T10: 03: 05.750874', 'fun': 'cmd.run', 'id': 'vagrant.vm'} [DEBUG] Minion de "salt" gère la balise d'événement '__schedule_return'
[DEBUG] schedule.handle_func: Suppression de/var/cache/salt/minion/proc/20170222100305532940 [ DEBUG] LazyLoaded mongo.returner

maintenant, je suis intéressé à écouter ces événements avec le tag __schedule_return. Sur sbire, je peux exécuter les commandes suivantes:

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

La sortie de eventlisten.py est correcte et je peux voir cet événement.

Maintenant, ma question est: Est-il possible d'écouter cet événement sur salt-master?

Quand je lance presque les mêmes commandes sur le maître:

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

Je ne suis pas en mesure de voir ces événements ont tiré sur sbire par mon travail prévu. Ma motivation pour faire ceci est que je cours le selpad sur mon maître et je voudrais voir mes travaux programmés dans les travaux récents (websockets ...).

Nous vous remercions de votre aide.

Répondre

0

Ecoute des événements

La meilleure façon de regarder le bus d'événements est en appelant le state.event runner sur vous-maître sel:

salt-run state.event pretty=True 

des événements de mise à feu

Il est possible de déclencher un événement à être envoyé au maître à partir du séide en utilisant la fonction d'exécution event.send:

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

Système Reactor

Le système Reactor de Salt permet de déclencher des actions en réponse à un événement. Les fichiers SLS du réacteur et les étiquettes d'événement sont associés dans le fichier de configuration principal (par défaut /etc/salt/master ou /etc/salt/master.d/reactor.conf).

Dans la section de configuration principale 'reactor:', vous pouvez spécifier une liste d'étiquettes d'événements à mettre en correspondance. Chaque étiquette d'événement peut avoir une liste de fichiers SLS de réacteur à exécuter.

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

Voir la documentation sur le reactor system pour plus d'informations sur le système de réacteur de sel.