ansible
Ansible: लूपिंग
खोज…
with_items - सरल सूची
with_items
एक with_items
लूप का उपयोग मूल्यों पर आसानी से लूप करने के लिए किया जा सकता है।
- name: Add lines to this file
lineinfile: dest=/etc/file line={{ item }} state=present
with_items:
- Line 1
- Line 2
- Line 3
with_items - पूर्वनिर्धारित सूची
तुम भी एक चर सूची पर लूप कर सकते हैं।
Var से:
favorite_snacks:
- hotdog
- ice cream
- chips
और फिर लूप:
- name: create directories for storing my snacks
file: path=/etc/snacks/{{ item }} state=directory
with_items: '{{ favorite_snacks }}'
यदि आप Ansible 2.0 का उपयोग कर रहे हैं, तो आपको चर के लिए कॉल के आसपास उद्धरणों का उपयोग करना चाहिए।
with_items - पूर्वनिर्धारित शब्दकोश
शब्दकोशों के साथ अधिक जटिल लूप बनाना संभव है।
Var से:
packages:
- present: tree
- present: nmap
- absent: apache2
फिर लूप:
- name: manage packages
package: name={{ item.value }} state={{ item.key }}
with_items: '{{ packages }}'
या, यदि आप कुंजी मूल्य का उपयोग करना पसंद नहीं करते हैं:
वार्स:
packages:
- name: tree
state: present
- name: nmap
state: present
- name: apache2
state: absent
फिर लूप:
- name: manage packages
package: name={{ item.name }} state={{ item.state }}
with_items: '{{ packages }}'
with_items - शब्दकोश
आप थोड़े अधिक जटिल लूप के लिए एक शब्दकोश का उपयोग कर सकते हैं।
- name: manage packages
package: name={{ item.name }} state={{ item.state }}
with_items:
- { name: tree, state: present }
- { name: nmap, state: present }
- { name: apache2, state: absent }
स्थिर फंदा
आप with_nested
का उपयोग करके नेस्टेड लूप बना सकते हैं।
var से:
keys:
- key1
- key2
- key3
- key4
फिर लूप:
- name: Distribute SSH keys among multiple users
lineinfile: dest=/home/{{ item[0] }}/.ssh/authorized_keys line={{ item[1] }} state=present
with_nested:
- [ 'calvin', 'josh', 'alice' ]
- '{{ keys }}'
यह कार्य प्रत्येक उपयोगकर्ता पर लूप करेगा और सूची में परिभाषित 4 कुंजियों के साथ उनकी authorized_keys
फ़ाइल को पॉप्युलेट करेगा।
Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow