ソルトステートファイルを含むディレクトリをクリア


11

状態ファイルを使用して、salt-minionのディレクトリをクリアするにはどうすればよいですか?他のスーパーバイザサービスを設定する前に*.conf、すべてのファイルを削除したいのですが/etc/supervisord/conf.d/

次のtop.sls構成は効果がありません。

/etc/supervisor/conf.d/*:
  file.absent

file.remove 利用できないため失敗します。

回答:


10

あなたと同じ問題がありました。それが私にとってうまくいきました。

remove-supervisord-confd:
   file.directory:
      - name: /etc/supervisord/conf.d/           
      - clean: True

4

完璧な答えではありませんが、ディレクトリでfile.absentを使用して、それを再作成できます。これにより、状態が実行されるたびにディレクトリが削除されることに注意してください。あなたは以下を取り巻くジンジャ条件で空想を得ることができます:

supervisor-conf-delete:
  file.absent:
    - name: /etc/supervisord/conf.d

supervisor-conf-create:
  file.directory:
    - name: /etc/supervisord/conf.d
    - user: root
    - group: root
    - mode: 0755
    - require:
        - file: supervisor-conf-delete

1

cmdモジュールはソルト状態で使用できます。次のコードが状態ファイルに存在する可能性があります。

rm -f /etc/supervisord/conf.d/*.conf:
    cmd.run

必要に応じて、より複雑なコマンドを記述することもできます。


ありがとう、それでうまくいきますが、非常にステートフルな感じはしません。file.absentが機能しない理由はありますか?たぶんそれはワイルドカードを理解しません。あるいは、directory機能のないモジュールがより適切でしょうか?
Petrus Theron 2013

「directory.absent」がステートを持つコマンド実行よりもステートフルになる方法がわかりません。あなたは状態を持っている必要がある場合は必要に応じて、ちょうどあなたのシェルスクリプトでそれらを紹介:docs.saltstack.com/en/latest/ref/states/all/...
noamik
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.