आप इस तरह से कुछ करके किसी भी सूची के तथ्यों / चर का उपयोग कर सकते हैं:
{{ hostvars['foo.example.com']['ansible_eth0']['ipv4']['address'] }}
या, यदि आप इसे एक इंडेक्स के माध्यम से समूह में करना चाहते हैं:
{{ hostvars[groups['collectors'][0]]['ansible_eth0']['ipv4']['address'] }}
बड़ी चाल यह है कि आपको उन सभी मेजबानों / समूहों के लिए तथ्यों को इकट्ठा करने की जरूरत है, जिनमें आप रुचि रखते हैं। इसलिए आप अपनी प्लेबुक को संशोधित करना चाहते हैं, जो लागू नहीं किए गए नो-ऑप (डमी) कार्य को शामिल करने के लिए रिपोर्टर समूह के खिलाफ चलता है। कलेक्टरों के समूह के लिए। इससे एंसिबल को संग्राहकों के मेजबानों के बारे में तथ्य एकत्र करने होंगे, ताकि उन्हें संवाददाताओं के समूह से एक्सेस किया जा सके। इसलिए आप अपने पत्रकारों की पुस्तक में कुछ इस तरह जोड़ना चाहते हैं:
- hosts: collectors
name: Gather facts from collectors
tasks: [ ]
खाली कोष्ठक का मूल रूप से मतलब है कि कोई भी कार्य निष्पादित नहीं किया जाएगा, लेकिन यह अभी भी एंसिबल को संग्राहकों के बारे में तथ्य इकट्ठा करने के लिए मजबूर करेगा ताकि आप उन्हें उन कार्यों में संदर्भित कर सकें जो आप अपने संवाददाताओं के खिलाफ चलाते हैं।
# 1 संपादित करें
मेरे साथ यह हुआ कि मुझे यह भी उल्लेख करना चाहिए कि अंसिबल के संस्करण 1.8 के रूप में, एक तथ्य-कैशिंग विशेषता है जो अब उपलब्ध है। फैक्ट कैशिंग प्लेबुक रन के बीच तथ्यों को संग्रहीत करने के लिए एक रेडिस सर्वर पर निर्भर करता है। इसके सक्षम होने के साथ, एक प्लेबुक उन तथ्यों को संदर्भित कर सकती है जो किसी अन्य प्लेबुक द्वारा प्राप्त किए गए थे जो पहले चलाए गए थे। Ansible प्रलेखन का उदाहरण देता है:
उदाहरण के लिए, हजारों मेजबानों के साथ एक बहुत बड़ा बुनियादी ढांचा। फैक्ट कैशिंग को रात में चलाने के लिए कॉन्फ़िगर किया जा सकता है, लेकिन सर्वर के एक छोटे से सेट का कॉन्फ़िगरेशन पूरे दिन में या समय-समय पर तदर्थ रूप से चल सकता है। तथ्य-कैशिंग सक्षम होने के साथ, सभी सर्वरों को चर और उनके बारे में जानकारी के संदर्भ में "हिट" करना आवश्यक नहीं होगा।