मैंने mount
और stat
मॉड्यूल दोनों के साथ प्रयास किया है। दोनों आपकी आवश्यकताओं को पूरा नहीं किया था।
मैंने केवल ओएस कमांड का उपयोग करके काम करने का प्रबंधन किया है। मैंने रेडहाट, डेबियन और एसएलएस परिवारों पर परीक्षण किया है।
vars:
- myvolume: /backup
tasks:
- command: mountpoint -q {{myvolume}}
register: volume_stat
failed_when: False
changed_when: False
- debug:
msg: "This is a mountpoint!"
when: volume_stat.rc == 0
समस्या है, mountpoint
आदेश stderr जेनरेट करती है पथ एक माउंट बिंदु ताकि आप ignore_errors
का उपयोग करने की जरूरत नहीं है, डायन एक अच्छा समाधान नहीं है।
संपादित करें 1: @udondan ने उल्लेख किया है, failed_when
एक बेहतर दृष्टिकोण तो ignore_errors
के बाद से यह नहीं आउटपुट त्रुटियों करता है।
यदि आप पथ माउंट पॉइंट नहीं हैं तो आपको प्लेबुक को रोकने की आवश्यकता हो सकती है।
मुझे आशा है कि किसी को इससे बेहतर समाधान मिलेगा।
नोट: वहाँ कुछ प्लेटफॉर्म है कि mountpoint
आदेश नहीं है, जहाँ तक मैं डार्विन (मैक OSX) और SunOS (ओरेकल सोलारिस) पता है, अगर आप इस उन सिस्टम पर काम करने की जरूरत है, तो आप करेंगे एक और कामकाज खोजने की जरूरत है।
स्रोत
2016-01-11 12:31:34
मेरा मानना है कि वास्तव में मौजूद लक्ष्य के लिए एक माउंटपॉइंट बनाना है। लेकिन मौजूदा पथ का मतलब यह नहीं है कि यह घुड़सवार है। – udondan
आप सही हैं @udondan, मैंने अपना जवाब बदल दिया है। –
'ignore_errors: true' के बजाय आप 'विफल_when: false' का उपयोग कर सकते हैं।यह थोड़ा कम बदसूरत है क्योंकि यह आउटपुट में त्रुटि नहीं दिखाएगा। दूसरी ओर यह _all_ त्रुटियों को छोड़ देगा। मुझे नहीं पता कि कुछ सिस्टम पर 'mountpoint' कमांड मौजूद नहीं है या नहीं? यह कुछ ऐसा होगा जो आप असफल करना चाहते हैं। :) लेकिन अगर आप जिस तरह से जाना चाहते हैं, तो आप 'विफल' स्थिति के साथ परेशान हो सकते हैं। – udondan