Как очистить каталог на соляном миньоне с помощью файла состояния? Я хочу удалить все *.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
Вы также можете написать более сложные команды, если хотите.