2016-03-21 6 views
2
nginx 
    pkg.installed: 
    - name: nginx 
    service: 
    - name: nginx 
    - running 
    - enable: True 
    - watch: 
     - file: /etc/nginx/* 

/etc/nginx: 
    file.recurse: 
    - source: salt://{{slspath}}/etc/nginx/ 
    - include_empty: True 

Wie kann ich die oben genannten Arbeiten ausführen? Ich möchte es so einrichten, dass jedes Mal, wenn eine neue Konfiguration in /etc/nginx/conf.d/newsite.conf hinzugefügt wird, nginx neu geladen wird.Saltstack - wie man ein ganzes Verzeichnis für Änderungen sieht?

Derzeit kann ich nur erreichen, wenn ich jeden conf in dem sls in der Art und Weise manuell hinzufügen:

/etc/nginx/conf.d/newsite.conf: 
    file.managed: 
    - source: salt://{{slspath}}/etc/nginx/conf.d/newsite.conf 

Gibt es eine Möglichkeit, es zu automatisieren?

+0

Haben Sie sich in incron als Alternative? –

+0

Ja, ich weiß über Inotify, aber das ist anders, ich möchte Änderungen an 20 Servern anwenden und nur wenn es eine Änderung in Nginx-Ordner gab, laden Sie den Dienst neu. Ich könnte einen Incron auf jedem Server machen, aber ich möchte auch, dass die Ausgabe und alles durch den Salzstapel geht. – ivom

Antwort

3

Sie können eine Dateiänderung in einem Verzeichnis nicht überwachen, um einen Status auszuführen. Aber Sie können ein Zustandsergebnis sehen, um dies zu tun. In Ihrem Fall sollte die folgende nginx neu starten, wenn eine Änderung der /etc/nginx Datei Zustand durchgeführt wird:

nginx 
    pkg.installed: 
    - name: nginx 
    service.running: 
    - enable: True 
    - watch: 
     - file: /etc/nginx 

/etc/nginx: 
    file.recurse: 
    - source: salt://{{slspath}}/etc/nginx/ 
    - include_empty: True 
+0

Yeap! Das funktioniert, danke. – ivom