Xóa thư mục với tập tin trạng thái Salt


11

Làm cách nào để xóa một thư mục trên minion muối bằng tệp trạng thái? Tôi muốn xóa tất cả *.confcác tập tin /etc/supervisord/conf.d/trước khi tôi thiết lập các dịch vụ giám sát khác.

Các top.slscấu hình sau không có hiệu lực:

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

file.remove thất bại là không có sẵn.

Câu trả lời:


10

Có vấn đề tương tự như bạn. Đó là những gì làm việc cho tôi.

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

4

Không phải là một câu trả lời hoàn hảo, nhưng bạn có thể sử dụng file.absent trên thư mục, sau đó tạo lại nó. Lưu ý rằng điều này sẽ xóa thư mục mỗi khi trạng thái được chạy. Bạn có thể trở nên lạ mắt với một điều kiện jinja xung quanh như sau:

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

Bạn có thể sử dụng mô-đun cmd trong trạng thái muối. Mã sau đây có thể có trong tệp trạng thái của bạn:

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

Bạn cũng có thể viết các lệnh phức tạp hơn nếu bạn muốn.


Cảm ơn, điều đó sẽ làm điều đó, nhưng nó không cảm thấy rất trạng thái. Bất cứ ý tưởng tại sao file.absent sẽ không hoạt động? Có lẽ nó không hiểu ký tự đại diện. Hoặc có lẽ một directorymô-đun với chức năng vắng mặt sẽ phù hợp hơn?
Petrus Theron

Tôi không thấy "thư mục.absent" sẽ còn trạng thái như thế nào hơn là một lệnh chạy có trạng thái. Nếu bạn cần phải có một trạng thái, chỉ cần giới thiệu chúng trong tập lệnh shell của bạn theo yêu cầu: docs.saltstack.com/en/latest/ref/states/all/ Kẻ
noamik
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.