Очистити каталог із файлом стану солі


11

Як я можу очистити каталог із сольового мінона за допомогою файла стану? Я хочу видалити всі *.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 у каталозі, а потім відтворити його. Зауважте, що це буде видаляти dir щоразу, коли стан працює. Ви можете поцікавитись умовно джинджею, що оточує:

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модуль з відсутнім функцією був би доречнішим?
Петрус Терон

Я не бачу, наскільки "directory.absent" був би більш загрозливим, ніж командний запуск, який містить стани. Якщо вам потрібно мати стан, просто введіть їх у свій сценарій оболонки у міру необхідності: docs.saltstack.com/en/latest/ref/states/all/…
noamik
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.