जब खंड टैग की उपस्थिति का मूल्यांकन नहीं कर सकते। वर्कअराउंड के रूप में, मैं उस टैग / वेरिएबल के लिए विशिष्ट कार्यों को चलाने के लिए चर और टैग का उपयोग करता हूं।
पूर्व: एक प्लेबुक और इन्वेंट्री की कल्पना करें
# सूची
[देव]
192.168.1.1
# site.yml
- यजमान: देव
भूमिकाओं:
- {भूमिका: आम}
और आम / कार्यों / main.yml में
# भूमिकाएँ / सामान्य / कार्य / main.yaml
- नाम: लिंक स्थापित करें
apt: नाम = लिंक राज्य = वर्तमान
- शामिल हैं: uninstall.yml
कब: अनइंस्टॉल_लिंक परिभाषित किया गया है
टैग:
- स्थापना रद्द करें
# भूमिकाएँ / आम / कार्य / अनइंस्टॉल
- नाम: लिंक अनइंस्टॉल करें
उपयुक्त: नाम = लिंक राज्य = अनुपस्थित
इस दृष्टिकोण के साथ, आप uninstall.yml में केवल कार्यों का चयन करने के लिए टैग का उपयोग करते हैं, लेकिन आपको इसे सक्षम करने के लिए कुछ के लिए 'uninstall_links' चर सेट करने की भी आवश्यकता है। इसलिए यदि आप बिना किसी पैरामीटर के प्लेबुक चलाते हैं, तो यह डिफ़ॉल्ट रूप से इंस्टॉल कार्य को चलाएगा। अनइंस्टॉल करने के लिए, आप अपनी प्लेबुक (या cmdline) पर 'अनइंस्टॉल' टैग सेट कर सकते हैं और वेरिएबल सेट करना होगा । यदि आप टैग सेट नहीं करते हैं, तो यह उस क्रम में सब कुछ स्थापित (इंस्टॉल और अनइंस्टॉल) करेगा, जो पूरी प्रक्रिया का परीक्षण करने के लिए अच्छा है।
सबकुछ कैसे चलाया जाए (यह इंस्टॉल और अनइंस्टॉल होगा):
$ ansible-playbook -i inventory site.yml -l dev -s -k -e "uninstall_links=true"
देव समूह पर केवल 'अनइंस्टॉल' टैग कैसे चलाया जाए
$ ansible-playbook -i inventory site.yml -l dev -s -k -e "uninstall_links=true" -t uninstall
इसलिए, वैरिएबल और टैग भी site.yml / इन्वेंट्री फ़ाइलों में हो सकते हैं, जिससे आप अपने SCM में कमिट कर सकते हैं और अपना इरादा रिकॉर्ड कर सकते हैं।