जोर और अड़चनें


11

मैं एक कॉन्फ़िगरेशन फ़ाइल बनाने के लिए एक टेम्पलेट का निर्माण कर रहा हूं, और इस फ़ाइल का उपभोग करने वाली सेवा पहचानकर्ता की लंबाई पर बाधा डालती है।

यदि कोई पहचानकर्ता 6 वर्णों से अधिक लंबा है, तो सेवा कॉन्फ़िगरेशन को लागू करने, विफल होने और असंगत स्थिति में नोड छोड़ने के माध्यम से अंश-मार्ग प्राप्त करेगी।

मैं एक तैनाती लेन-देन की विफलता को ट्रिगर करने का दावा कैसे कर सकता हूं, लक्ष्य नोड्स की सेवा को गलत तरीके से रोकने से रोक सकता है?

मेरी विशेष परिस्थिति नमक है, लेकिन मैं यह देखने के लिए उत्सुक हूं कि अन्य प्रणालियां समस्या का समाधान कैसे करती हैं।


अच्छी तरह से शेफ में मैं एक लिनिंग नियम जोड़ूंगा, या तो आरएसईपी या फूडक्रिटिक या नुस्खा में पहचानकर्ता मैच सुनिश्चित करेगा। नमक के लिए कोई विचार नहीं है, मुझे नहीं लगता कि प्रत्येक कॉन्फ़िगरेशन मैनेजर के पास इसकी विशिष्ट विशिष्टता है
टेन्सिबाई

मैं उत्तर को कम विशिष्ट होने के लिए संपादित करूंगा।
माइकल मोल

फिलहाल, सॉल्टस्टैक + जिंजा समाधान के लिए मेरा वर्तमान चिंतन एक मैक्रो होगा जो उस फ़ाइल से पढ़ने का प्रयास करता है जो मौजूद नहीं हो सकता है। अन्य रेंडरर्स अलग तरीके से काम करेंगे। एक पायथन रेंडरर, उदाहरण के लिए, तुच्छ होगा; बस एक अपवाद फेंक दो।
माइकल मोल

जवाबों:


7

Ansible में: आप उपयोग assertया failमॉड्यूल कर सकते हैं ।

- name: "Make sure web_sites is dictionary"
  fail: msg="web_sites should be dictionary"
  when: web_sites is not dict  


- name: "cluster_name should be shorter than 6 chars"
  assert: 
       that: cluster_name|len <= 6

कठपुतली में: पार्सिंग चरण के दौरान असफल फ़ंक्शन का मूल्यांकन किया जाता है जो सर्वर पर पार्सिंग विफलता का कारण बनता है ( स्टैकऑवरफ़्लो पर प्रश्न देखें )

 if length($cluster_name) > 6 {
      fail("Cluster name is too long. Should be less than 6 chars.")
 }
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.