2016-05-12 16 views
6

मैं एक मास्टर प्लेबुक रखना चाहता हूं, जिसमें अन्य प्लेबुक शामिल हैं। क्या प्लेबैक में एक वैरिएबल पास करना संभव है?प्लेबुक शामिल करने के लिए चर चर?

सामान्य वाक्य रचना जो शामिल कार्यों के गुजर चर के लिए प्रयोग किया जाता है काम नहीं करता है (नीचे देखें)

- include: someplaybook.yml variable=value 

और

- include: someplaybook.yml 
    vars: 
    variable: value 

मैं v2.0.2.0 चल रहा हूँ।

+0

क्या आप भूमिकाओं के बारे में जानते हैं? यह सामान्य वाक्यविन्यास क्या काम नहीं करता है? – Nasr

+1

जहां तक ​​मुझे पता है कि वेरिएबल्स प्लेबुक के पूरे भाग की अवधि के लिए वैश्विक स्तर पर वैश्विक हैं, इसलिए आपको किसी भी बिंदु पर चर को परिभाषित करने की आवश्यकता है – ydaetskcoR

+0

@ नासर हाँ मुझे भूमिकाओं के बारे में पता है - वे इस मामले में मदद नहीं करेंगे । मैंने सामान्य वाक्यविन्यास जोड़ा है। उत्तर में विभिन्न प्रकार के चर के लिए अलग-अलग क्षेत्रों हैं। बस set_facts का उपयोग काम नहीं करता है। – CamHart

उत्तर

0

एकमात्र चीज़ जो मुझे याद आ रही है वह उद्धरण है।

- include: someplaybook.yml variable='value' 

यह मेरे लिए काम करता है और आपके लिए भी काम करना चाहिए। यदि आप जिस त्रुटि का सामना करते हैं उसे साझा न करें।

सुनिश्चित करें कि आपके पास भूमिका के कार्य में परिभाषित यह चर "चर" है और यहां से आप केवल उस चर के मान को पार कर रहे हैं।

+3

कार्य के लिए यह काम करता है - प्लेबुक में शामिल नहीं है। – CamHart

+0

उपरोक्त आदेश में मैंने प्लेबुक शामिल किया है। कार्य द्वारा क्या मतलब है? क्या आप कोड को साझा कर सकते हैं जहां इस चर का उपयोग किया जाता है ताकि मैं इस बारे में अधिक जानकारी प्राप्त कर सकूं कि आप इसका उपयोग कैसे करना चाहते हैं? –

+2

प्लेबुक में शामिल हैं, जिसमें आपके द्वारा शामिल की गई फ़ाइल में नाटक शामिल हैं, यानी वे मेजबान मशीनों पर चलाने के लिए "होस्ट" मशीन और भूमिकाएं/कार्य निर्दिष्ट करते हैं। कार्य में चलाने के लिए केवल कार्य निर्दिष्ट करें। – CamHart

0

इसके अलावा, मैं सुझाव है कि आप इस पढ़ा है, http://docs.ansible.com/ansible/latest/playbooks_reuse.html और इस मामले में भूमिका निभाने का उपयोग करके देखें, यह इस तरह के मामले में, जहाँ आप एक ही मुख्य प्लेबुक में/आयात कई playbooks शामिल करने के लिए कोशिश कर रहे हैं में मदद करेंगे। और शामिल कथन में एक मूल्य पारित करने के बारे में आप इसे भूमिका के vars main.yml में जोड़ सकते हैं। या, यदि आप जिस वैरिएबल को पास करना चाहते हैं वह पिछले मुख्य प्लेबुक 'रजिस्टर' में पिछले कार्य का परिणाम है और आउटपुट को एक varible में सहेजता है।

- debug: msg="{{result.stdout_lines}}"

यहाँ

, परिणाम पंजीकृत चर रहा है। डीबग मॉड्यूल का उपयोग यह जानने के लिए करें कि आप प्लेबुक में क्या पास करना चाहते हैं। उम्मीद है कि यह मदद करता है।

+1

मुझे यह पूछने पर सटीक संदर्भ याद नहीं है, लेकिन यदि आप मूल प्रश्न पर टिप्पणियां पढ़ते हैं तो मैं स्पष्ट था कि भूमिकाओं को हल करने के लिए इसका उपयोग नहीं किया जा सका। मैं पहले से ही भूमिकाओं का उपयोग कर रहा था - यह भूमिकाओं को संभालने के मुकाबले थोड़ा अलग उपयोग मामला था। हालांकि मैं सटीक विवरण भूल गया। – CamHart

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