জিনজা 2 টেমপ্লেটে উত্তরযোগ্য পরিবর্তনশীল অ্যারের উপরে লুপ করুন


12

উত্তরীয় যখন হোস্ট সম্পর্কে তথ্য সংগ্রহ করে, উদাহরণস্বরূপ এটি হোস্টের সমস্ত মাউন্টগুলি পায়:

 "ansible_mounts": [
            {
                "block_available": 7800291, 
                "block_size": 4096, 
                "block_total": 8225358, 
                "block_used": 425067, 
                "device": "/dev/mapper/foobar", 
                "fstype": "xfs", 
                "inode_available": 16403366, 
                "inode_total": 16458752, 
                "inode_used": 55386, 
                "mount": "/", 
                "options": "rw,seclabel,relatime,attr2,inode64,noquota", 
                "size_available": 31949991936, 
                "size_total": 33691066368, 
                "uuid": "2ebc82cb-5bc2-4db9-9914-33d65ba350b8"
            }, 
            {
                "block_available": 44648, 
                "block_size": 4096, 
                "block_total": 127145, 
                "block_used": 82497, 
                "device": "/dev/sda1", 
                "fstype": "xfs", 
                "inode_available": 255595, 
                "inode_total": 256000, 
                "inode_used": 405, 
                "mount": "/boot", 
                "options": "rw,seclabel,relatime,attr2,inode64,noquota", 
                "size_available": 182878208, 
                "size_total": 520785920, 
                "uuid": "c5f7eaf2-5b70-4f74-8189-a63bb4bee5f8"
            }, 

ইত্যাদি। সুতরাং আমি যা করতে চাই তা হ'ল: একটি টেম্পলেটটিতে আমি অ্যারেতে থাকা সমস্ত বস্তুর উপর লুপ করতে চাই এবং প্রতিটি "মাউন্ট" কী এর মান আউটপুট করতে চাই।

আমি এটির মতো চেষ্টা করে দেখি:

    (% for mounts in {{ ansible_mounts }} %)
    Mountpoint: {{ ansible_mounts.mount }}
    (% endfor %)

কিন্তু এটা কাজ করে না। আমি আরও কিছু জিনিস যেমন ইটারাইটেম () এর সাথে চেষ্টা করেছিলাম তবে আমি এটি কাজ করতে পারি না। যতদূর আমি জানি উত্তরযোগ্য আউটপুটটি জেসন মধ্যে রয়েছে, যদি এটি কাউকে সহায়তা করে। সমাধান কি কেউ জানেন বা স্ট্যাকওভারফ্লোয়ের জন্য এটি আরও একটি প্রশ্ন?

কোন উত্তরের জন্য ধন্যবাদ।

উত্তর:


17

আপনার একটি সাধারণ বাক্য গঠন ত্রুটি রয়েছে; আপনার বন্ধনীগুলির পরিবর্তে ব্রেস বন্ধনী ব্যবহার করা উচিত।

আপনার বর্তমানে রয়েছে:

(% for mounts in {{ ansible_mounts }} %)
Mountpoint: {{ ansible_mounts.mount }}
(% endfor %)

এগুলি ব্রেসগুলি হওয়া উচিত, প্রথম বন্ধনী নয়, {%এবং %}

এছাড়াও, আপনি যে পরিবর্তনশীল নামটি নির্বাচিত করেছেন forতা mountsহ'ল প্রতিটি বস্তুটি পেতে লুপের অভ্যন্তরে আপনার ব্যবহার করা উচিত।

অবশেষে, লুপের জন্য ভেরিয়েবলের চারপাশে বন্ধনীগুলি আবশ্যক নয়।

এর ফলে এই ত্রুটিগুলি সংশোধন করে যা কাজ করে:

{% for mounts in ansible_mounts %}
Mountpoint: {{ mounts.mount }}
{% endfor %}

ধনুর্বন্ধনী সহ মন্তব্যটি পড়ুন ... আপনি যদি ভুলভাবে প্রথমে ভুল ব্লকটি অনুলিপি করেন তবে স্পট করা শক্ত। :(
মার্কাস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.