किसी परिवर्तनशील कार्य की रिपोर्टिंग का क्या महत्व है कि कुछ बदल गया है?


20

मेरे पास एक कार्य है जो यह जांचता है कि मेरी प्रक्रिया पोर्ट 8080 पर सुन रही है और केवल जब निकास कोड शून्य नहीं है, तो क्या मैं failएक संदेश के साथ चलाऊंगा।

जब सेवा चल रही होती है, तो यह रिपोर्ट करता है कि स्थिति बदल गई है। मैं यह कहना चाहता हूं okchangedAnsible में वास्तव में एक स्थिति का क्या मतलब है?

जवाबों:


11

कुछ भी जो लक्ष्य पर किसी चीज़ पर निर्भर है, निष्पादित होने पर स्थिति "परिवर्तित" हो जाएगी, भले ही वह किसी चीज़ को गूंजने के लिए केवल शेल कमांड हो।

"परिवर्तित" स्थिति को दबाने के लिए, आप निम्न पंक्ति को कार्य में जोड़ सकते हैं:

changed_when: false

यह और अन्य प्रासंगिक चीजें इस ansible डॉक्टर पृष्ठ पर सूचीबद्ध हैं ।


27

Ansible कार्य होना चाहिए idempotent । उदाहरण के लिए। यदि कार्य कुछ भी संशोधित नहीं करता है, तो okइसके बजाय वापस लौटना चाहिए changed। अधिकांश अंतर्निहित मॉड्यूल और कार्य पहले से ही हैं, लेकिन जैसे कार्यों के लिए commandऔर shellआपको थोड़ी मदद करने में मदद करनी चाहिए।

ऐसे कार्य के लिए जो पूरी तरह से जाँच करता है और कुछ भी संशोधित नहीं करता है, आपको जोड़ना चाहिए:

changed_when: False
always_run: yes

उत्तरार्द्ध कार्य को चेक मोड में भी चलाने की अनुमति देता है

पूर्णता के लिए, ऐसे कार्यों को आम तौर पर एक दूसरे के साथ जोड़ा जाता है जो वास्तविक संशोधन करता है, जैसे:

- command: check command that returns true when no change needed
  register: result
  changed_when: False
  always_run: yes
- command: modify command
  when: result.rc != 0

2
इसका उत्तर सत्यापित होना चाहिए
मास्टर्स जूल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.