솔트 스테이트 파일로 디렉토리 지우기


11

상태 파일을 사용하여 salt-minion에서 디렉토리를 지우려면 어떻게해야합니까? 다른 감독자 서비스를 설정하기 전에 모든 *.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이 삭제됩니다. 다음을 둘러싼 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

1

소금 상태에서 cmd 모듈을 사용할 수 있습니다. 상태 파일에 다음 코드가있을 수 있습니다.

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

원하는 경우 더 복잡한 명령을 작성할 수도 있습니다.


고마워, 그렇게 할 것이지만, 매우 상태가 좋지 않습니다. file.absent가 작동하지 않는 이유가 무엇입니까? 와일드 카드를 이해하지 못할 수도 있습니다. 아니면 directory기능이없는 모듈이 더 적합할까요?
Petrus Theron

상태가있는 명령 실행보다 "directory.absent"가 더 이상 상태를 유지하는 방법을 알 수 없습니다. 상태가 필요한 경우, 필요에 따라 쉘 스크립트에 상태를 소개하십시오. docs.saltstack.com/en/latest/ref/states/all/…
noamik
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.