Ich möchte ein Verzeichnis auf meinem Salz-Master haben, das mit dem Windows 7-Minion, den ich gerade betreibe, synchronisiert wird. Ich habe versucht mit schedule.present, aber ich hatte sehr wenig Glück. Ich bin mir nicht sicher, was mein Problem damit ist, aber ich denke auch, dass dies nicht der beste Weg ist, um meine Aufgabe zu erfüllen.Wie bekomme ich den Zeitplan, um im Salzstapel zu arbeiten?
Hier ist, was meine Umgebung aussieht:
Salz-Master
OS: CentOS7
Salz Version: 2016.3.0
Salz-Günstling
OS: Ubuntu 14.04
Salz Version: 2016.3.0
Hier ist meine aktuelle Konfiguration:
init.sls
syncFiles:
schedule.present:
- function: /home/user/directory
- seconds: 30
- splay: 10
/home/user/directory:
file.recurse:
- source: salt://source/directory/
Wenn ich dies ausführen, wird alles erfolgreich zurückgegeben, und mirrordirectory
läuft das erste Mal wie erwartet, aber keine Male in der Zukunft.
Die Debug-Ausgabe vom Diener ist dies.
[INFO ] Invalid function: mirrordirectory in scheduled job syncFiles.
Ich vermute, ich die Funktion auf dem Günstling setzen müssen, aber ich kann nicht, dass überall in der Dokumentation.
Wenn es eine Möglichkeit gibt, dies zu tun, ohne eine Funktion auf den Diener zu setzen, bin ich daran interessiert zu wissen, was es ist, aber ich möchte zumindest lernen, wie man Zeitpläne in Salatsack laufen lässt.
Jede Hilfe wird geschätzt.
Side Hinweis
Schließlich Das wird ein Windows 7 Günstling sein, statt ubuntu, ich versuche nur das erste an der Arbeit. 1
UPDATE
Hier ist, was ich versucht habe, auf der Grundlage der Antwort unten (und es funktioniert immer noch nicht).
/srv/salt/mirrordirectory/init.sls
syncFiles:
schedule.present:
- function: state.sls
- job_args:
- testfile
- seconds: 30
- splay: 10
/srv/salt/testfile.sls
/tmp/foo:
file.recurse:
- source: salt://files
/srv/salt/top.sls
base:
'*':
- mirrordirectory
/srv/Salz/Dateien
Dieses Verzeichnis enthält Dateien
synchronisiertMasterwiederkehr alle Erfolg werden:
myminion:
----------
ID: syncFiles
Function: schedule.present
Result: True
Comment: Job syncFiles in correct state
Started: 16:18:22.290216
Duration: 140.989 ms
Changes:
Summary for myminion
------------
Succeeded: 1
Failed: 0
------------
Total states run: 1
Die Debug auf dem Günstling ein Problem zeigt:
[DEBUG ] Sending event - data = {'fun_args': ['testfile'], 'jid': 'req', 'return': ["No matching sls found for 'testfile' in env 'base'"], 'retcode': 1, 'success': True, 'schedule': 'syncFiles', 'cmd': '_return', 'pid': 24448, '_stamp': '2016-06-15T21:19:57.928894', 'fun': 'state.sls', 'id': 'myminion'}
[DEBUG ] Handling event tag '__schedule_return'
[INFO ] Returning information for job: req
Diese Linie scheint zu sein, das Problem ["No matching sls found for 'testfile' in env 'base'"]
. Irgendeine Idee, warum es die Datei nicht finden kann?
UPDATE 2
/etc/Salz/Master
interface: 192.168.0.1
user: salt
Das sind die einzigen zwei Zeilen in meiner Master-Konfigurationsdatei. Ich wollte testen, ob ich als Benutzer anders als root laufen würde, und alles funktionierte gut, nachdem ich einige Dateiberechtigungen geändert hatte. Vielleicht ist das das Problem ... vielleicht habe ich etwas verpasst.
Ich habe gerade genau die gleichen Salzkonfigurationen probiert und es hat wie ein Zauber für mich funktioniert. Ich vermute, dass möglicherweise ein Problem mit der Konfiguration Ihres Salt-Masters vorliegt. Hast du es in irgendeiner Weise vom Standard geändert? Kannst du es bitte hier einfügen? – alexK
Das einzige, was ich geändert habe, ist der '' 'Benutzer: root''' zu' '' user: salt'''. Ich werde meine Konfigurationsdatei in die Frage einfügen. Nochmals vielen Dank für die Hilfe. – trueCamelType
Nur für den Fall, dass es das Problem verursacht, ich habe die Benutzer: root-Linie, und es läuft wieder als root. Das schien nicht zu helfen. – trueCamelType