2014-05-17 5 views
19

Desidero riavviare il servizio nginx ogni volta che un file nella directory /etc/nginx/conf.d viene creato o modificato.SaltStack: in una dichiarazione di controllo, come posso specificare una directory in cui tutti i file devono essere guardati?

Ci sono un numero di file in quella directory, e invece di specificare determinati file, mi piacerebbe vedere tutte le modifiche.

Ho provato questo:

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

ma la linea - file: /etc/nginx/conf.d non sta facendo quello che voglio.

Questo è l'errore:

 ID: nginx 
Function: service.running 
    Result: False 
Comment: The following requisites were not found: 
          watch: 
           file: /etc/nginx/conf.d 
Changes: 

ho provato anche un certo numero di varianti tra cui una barra finale, ma nessuno di loro lavoro.

Cosa deve essere modificato in - file: /etc/nginx/conf.d/?

+0

Non ho mai provato quello che stai facendo, ma sono curioso di sapere quali sono esattamente le opzioni di mount per il tuo filesystem di destinazione? 'grep root/proc/mounts' –

+0

rootfs/rootfs rw 0 0 –

risposta

22

sto usando un glob per la corrispondenza:

file: /etc/nginx/conf.d/* 

Ecco il frammento di codice corretto:

nginx: 
    pkg.installed: 
    - name: nginx 
    service: 
    - running 
    - enable: True 
    - restart: True 
    - watch: 
     - file: /etc/nginx/nginx.conf 
     - file: /etc/nginx/conf.d/* 
     - pkg: nginx 

Anche fare notare che il sale può solo guardare gli altri stati che sono già specificato nel file di stato , quindi vedrà solo i file gestiti da Salt stesso.

Se questo non funziona per voi, quindi provare a consultare il seguente link per una soluzione diversa: http://intothesaltmine.org/blog/html/2012/12/18/using_watch_with_file_recurse.html

+1

Sono nella stessa posizione dell'OP e per lo stesso motivo. E sto usando una soluzione come quella che presenti. Ma non funziona ancora correttamente. In particolare, 'watch' attiva solo un ricaricamento quando cambia un file in' conf.d', non quando il file viene aggiunto a 'conf.d'. Credo. Sto ancora cercando di eseguire il debug di questo. – nomen

2

Secondo issue 663 chiuso nel febbraio 2012, un orologio sul /path/* dovrebbe guardare in modo ricorsivo.

Problemi correlati