使用 Salt State 文件清除目录

使用 Salt State 文件清除目录

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

以下top.sls配置无效:

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

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

答案1

遇到了和你一样的问题。这就是我的方法。

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

答案2

虽然答案不完美,但您可以在目录上使用 file.absent,然后重新创建它。请注意,每次运行状态时,这都会删除目录。您可以使用围绕以下内容的 jinja 条件:

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

答案3

您可以在 salt 状态下使用 cmd 模块。以下代码可能存在于您的状态文件中:

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

如果您愿意,您还可以编写更复杂的命令。

相关内容