Verzeichnis mit Salt State-Datei löschen


11

Wie lösche ich ein Verzeichnis auf einem Salt-Minion mithilfe einer Statusdatei? Ich möchte alle *.confDateien löschen, /etc/supervisord/conf.d/bevor ich andere Supervisor-Dienste einrichte.

Die folgende top.slsKonfiguration hat keine Auswirkung:

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

file.remove schlägt als nicht verfügbar fehl.

Antworten:


10

Hatte das gleiche Problem wie Sie. Das hat bei mir funktioniert.

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

4

Keine perfekte Antwort, aber Sie könnten file.absent für das Verzeichnis verwenden und es dann neu erstellen. Beachten Sie, dass dadurch das Verzeichnis jedes Mal gelöscht wird, wenn der Status ausgeführt wird. Sie könnten Lust auf eine Jinja-Bedingung bekommen, die Folgendes umgibt:

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

Sie können das cmd-Modul in Salt-Zuständen verwenden. Der folgende Code könnte in Ihrer Statusdatei vorhanden sein:

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

Sie können auch kompliziertere Befehle schreiben, wenn Sie dies wünschen.


Danke, das würde es tun, aber es fühlt sich nicht sehr zustandsbehaftet an. Irgendeine Idee, warum die Datei file.absent nicht funktionieren würde? Vielleicht versteht es keine Platzhalter. Oder wäre vielleicht ein directoryModul mit fehlender Funktion besser geeignet?
Petrus Theron

Ich sehe nicht, wie "directory.absent" mehr statusbehaftet wäre als ein Befehlslauf mit Status. Wenn Sie einen Status benötigen, führen Sie ihn einfach nach Bedarf in Ihr Shell-Skript ein: docs.saltstack.com/de/latest/ref/states/all/…
noamik
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.