web-dev-qa-db-ja.com

SaltStack:watchステートメントで、すべてのファイルを監視するディレクトリを指定するにはどうすればよいですか?

/etc/nginx/conf.dディレクトリ内のファイルが作成または変更されるたびに、nginxサービスを再起動したいと思います。

そのディレクトリには多数のファイルがあり、特定のファイルを指定するのではなく、すべての変更を監視したいと思います。

私はこれを試しました:

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

しかし、行- file: /etc/nginx/conf.dは私が望むことをしていません。

これはエラーです:

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

末尾のスラッシュを含むいくつかのバリエーションも試しましたが、どれも機能しません。

- file: /etc/nginx/conf.d/を何に変更する必要がありますか?

19
coffee-grinder

マッチングにグロブを使用しています:

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

修正されたスニペットは次のとおりです。

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

また、saltは、状態ファイルですでに指定されている他の状態のみを監視できるため、salt自体によって管理されているファイルのみを監視することに注意してください。

これがうまくいかない場合は、別の解決策について次のリンクを参照してみてください: http://intothesaltmine.org/blog/html/2012/12/18/using_watch_with_file_recurse.html

23
nmadhok

issue 66 2012年2月に閉鎖されたとのことですが、/path/*の監視は再帰的に監視する必要があります。

2
Chris Martin