13

How do I clear a directory on a salt-minion using a state file? I want to delete all *.conf files in /etc/supervisord/conf.d/ before I set up other supervisor services.

The following top.sls configuration has no effect:

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

file.remove fails as being unavailable.

3 Answers3

11

Had same issue as you. That's what worked for me.

remove-supervisord-confd:
   file.directory:
      - name: /etc/supervisord/conf.d/           
      - clean: True
holms
  • 1,674
4

Not a perfect answer, but you could use file.absent on the directory, then recreate it. Note that this will delete the dir every time the state is run. You could get fancy with a jinja conditional surrounding the following:

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

You can use the cmd module in salt states. The following code could be present in your state file:

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

You can also write more complicated commands if you wish.

pincoded
  • 389
  • 2
  • 9