用盐状态文件清除目录


11

如何使用状态文件清除Salt-minion上的目录?我想*.conf/etc/supervisord/conf.d/设置其他主管服务之前删除其中的所有文件。

以下top.sls配置无效:

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

file.remove 由于不可用而失败。

Answers:


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

我看不到“ directory.absent”如何比具有状态的命令运行更具状态。如果您需要一个状态,只需按照需要在您的shell脚本中引入它们:docs.saltstack.com/en/latest/ref/states/all/…– noamik 2014
6
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.