jinja2 - How to write dynamic variable in Ansible playbook -


अतिरिक्त वार्स पैरामीटर के आधार पर मुझे ansible playbook

  ansible-playbook playbook.yml -e "param1 = value1 param2 = value2 param3 = value3"   

यदि केवल param1 param1, param2 पारित

 

 

यदि param1, param2, param3 पारित किया जाता है तो वैरिएबल वैल्यू होगा

  myvariable: 'param1, param2'   

Myvariable: 'param1, param2, param3'

जब मैं टेम्पलेट के माध्यम से गतिशील रूप से चर बनाने की कोशिश करता हूं तो मेरी प्लेबुक हमेशा पिछले वैरिएबल वैल्यू लेती है। लेकिन अंदर dest = roles / myrole / vars / main.yml इसके लेखन सही मूल्य।

मैं यहाँ एक कोशिश करता हूं

  - मेजबान: स्थानीय उपयोगकर्ता: रोप इकट्ठा करें: कनेक्शन: स्थानीय कनेक्शन: - टेम्पलेट: src = भूमिकाएं / मैरोल / टेम्पलेट / माइवर .j2 dest = roles / myrole / vars / main.yml - debug: var = myvariable भूमिकाएं: - {role: myrole}   

तो अंदर myrole निर्देशिका I टेम्पलेट और वार्स

  - भूमिकाएं - मैरियोल - वार्स / मुख्य.इंम - टेम्पलेट / myvar.j2 बना दिया है  < / प्री> 

टेम्पलेट / myvar.j2

  {% यदि परम 1 परिभाषित किया गया है और param2 को परिभाषित किया गया है और param3 को परिभाषित किया गया है% myvariable: 'param1, param2 , param3 '{% elif param1 परिभाषित है और param2 परिभाषित%} myvariable:' param1, param2 '{% elif param1% परिभाषित किया गया है} myvariable:' param1 '{% else%} myvariable:' default-param '{% endif जैसा कि मुझे पता है कि केवल दो हालत तो मैं इसे  इनलाइन अभिव्यक्ति  जैसा नीचे की तरह कर सकता हूँ  
  {{ param1, param2 'अगर param1 परिभाषित किया गया है और param2 को परिभाषित किया गया है' डिफ़ॉल्ट-पार Am '}}   

& lt; कुछ करें & gt; यदि & lt; कुछ सच है & gt; else & lt; कुछ और करें & gt;

क्या यह संभव है if - elif - else में इनलाइन एक्सप्रेशन जैसा ऊपर दिया गया है या उत्तरदायी प्लेबुक में गतिशील रूप से मूल्य निर्दिष्ट करने का कोई अन्य तरीका?

मुझे यकीन है कि आप जो करना चाहते हैं, उसके लिए चालाक तरीके हैं लेकिन यह काम करना चाहिए:

  - नाम: टेस्ट वर् मेजबान: सभी इकट्ठा करें: कोई वार्स: myvariable: झूठी कार्य: - नाम: param1 set_fact: myvariable: "{{param1}}" कब: param1 परिभाषित है - नाम: param2 set_fact : myvariable: "{{param2 यदि नहीं myvariable अन्य myvariable + ',' + param2}}" जब: param2 परिभाषित किया गया है - नाम: param3 set_fact: myvariable: "{{param3 यदि नहीं myvariable अन्य myvariable + ',' + param3} } "कब: param3 परिभाषित किया गया है - नाम: डिफ़ॉल्ट set_fact: myvariable:" default "जब: myvariable नहीं - डीबग: var = myvariable   

उम्मीद है कि मदद करता है मुझे यकीन नहीं है कि आप गतिशील रूप से चर का निर्माण कर सकते हैं और यह एक इटरेटर में कर सकते हैं। लेकिन आप एक छोटा अजगर कोड या किसी भी अन्य भाषा को भी लिख सकते हैं और इसे उत्तरदायी में प्लग कर सकते हैं

Comments

Popular posts from this blog

Java - Error: no suitable method found for add(int, java.lang.String) -

c# - passing input text from view to contoller with FacebookContext using Facebook app -

Calling a C++ function from C# by passing a string with variable size to it -