Назад | Перейти на главную страницу

Очистить каталог с файлом состояния соли

Как очистить каталог на соляном миньоне с помощью файла состояния? Я хочу удалить все *.conf файлы в /etc/supervisord/conf.d/ прежде, чем я настроил другие службы супервизора.

Последующий top.sls конфигурация не действует:

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

file.remove не работает как недоступный.

Была такая же проблема, как и у вас. Вот что у меня сработало.

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

Не лучший ответ, но вы можете использовать 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

Вы можете использовать модуль cmd в солевых состояниях. В вашем файле состояния может присутствовать следующий код:

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

Вы также можете написать более сложные команды, если хотите.