ansible परिवर्तनीय-क्या परिवर्तनीय मूल्य सेट करते समय मैं अंकगणित का उपयोग कर सकता हूं?



ansible-playbook (1)

मैं एक मेजबान के लिए एक आधार के रूप में एक संख्या / प्रतिशत होस्ट समय के लिए एक सिस्टम तथ्य का उपयोग करना चाहूंगा। मैं जो विशेष रूप से करने की कोशिश कर रहा हूं वह asible_memtotal_mb मान का उपयोग करता है और इसे एक। के लिए एक Camsbase मान सेट करने में उपयोग करने के लिए एक ramsize पाने के लिए .80 से गुणा करें। मैं नीचे लाइन के विभिन्न रूपों की कोशिश कर रहा हूं। मुझे यकीन नहीं है कि यह संभव है, लेकिन किसी भी मदद की सराहना की जाएगी।

vars:
  ramsize: '"{{ ansible_memtotal_mb }}" * .80'

तुम सच में करीब हो! मैं कुछ डिफ़ॉल्ट जावा मेमोरी साइज़ सेट करने के लिए गणना का उपयोग करता हूं, जो कि आप जो कर रहे हैं, उसके समान है। यहाँ एक उदाहरण है:

{{ (ansible_memtotal_mb*0.8-700)|int|abs }}

यह कुछ चीजों को दिखाता है- सबसे पहले, यह jinja गणित का उपयोग कर रहा है, इसलिए {{ jinja }} अंदर गणना {{ jinja }} । दूसरा, int और abs जो आप अपेक्षा करते हैं- सुनिश्चित करें कि परिणाम एक अहस्ताक्षरित पूर्णांक है।

आपके मामले में, सही कोड होगा:

vars:
  ramsize: "{{ ansible_memtotal_mb * 0.8 }}"




ansible-playbook