2016-04-08 11 views
17

हो, मेरे पास एकाधिक कार्य चर 1 के मान से निर्भर हैं। मैं जाँच करने के लिए चाहते हैं, तो मूल्य {{variable1}} में है, लेकिन मैं एक त्रुटि मिली:एक परिवर्तनीय कार्य केवल तभी चलाएं जब चर में एक विशिष्ट स्ट्रिंग

- name: do something when the value in variable1 
    command: <command> 
    when: "'value' in {{variable1}}" 

मैं उपयोग कर रहा हूँ ansible 2.0.2

+0

उत्तर: ... कि:। ..' आपको क्या त्रुटि दिखाई दे रही है? – jhutar

उत्तर

17

हैं variable1 एक स्ट्रिंग है, और आप खोज रहे हैं इसमें एक-स्ट्रिंग, इस काम करना चाहिए:

when: '"value" in variable1' 

अगर variable1 बजाय, in अपने आइटम में से एक के रूप में सटीक स्ट्रिंग के लिए खोज करेंगे किसी सरणी या dict है।

+1

यह नहीं होना चाहिए: कब: "वैल्यू 1" –

-1

मैं इस्तेमाल किया

failed_when: not(promtool_version.stdout.find('1.5.2') != -1) 

का मतलब है - में विफल रहा है केवल जब पहले से पंजीकृत चर "promtool_version" नहीं है स्ट्रिंग '1.5.2' में शामिल है। ऊपर जवाब में से

15

कोई नहीं ansible 2.3.0.0 में मेरे लिए काम किया, लेकिन निम्न करता है: मैं (अच्छी तरह से, मैं इसे `दर्शाते हैं उनमें का उपयोग के लिए काम करता है नीचे

when: variable1 | search("value") 
+3

+1 में मैं यह जवाब पसंद करता हूं। यदि आप चेक करना चाहते हैं तो आप 'variable1' से पहले 'नहीं' भी जोड़ सकते हैं उस variable1 में 'मान' नहीं है। कब: परिवर्तनीय नहीं 1 | खोज ("मान") –

संबंधित मुद्दे