नमक राज्य फ़ाइल के साथ स्पष्ट निर्देशिका


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 का उपयोग कर सकते हैं, फिर इसे फिर से बना सकते हैं। ध्यान दें कि यह राज्य चलाने के दौरान हर बार डायर को हटा देगा। आप निम्नलिखित के आसपास एक जिन्जा सशर्त के साथ फैंसी प्राप्त कर सकते हैं:

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 Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.