Ansible-এ লুপ ব্যবহার করা হয় একাধিক আইটেম বা উপাদানের উপর একই কাজ বারবার চালানোর জন্য। লুপ ব্যবহার করে আপনি একটি টাস্ককে পুনরাবৃত্তি করতে পারেন, যা প্লেবুককে আরও কার্যকর এবং সংক্ষিপ্ত করে তোলে। Ansible-এ লুপের জন্য প্রধানত দুটি পদ্ধতি ব্যবহৃত হয়: loop
এবং with_items
। Ansible 2.5 থেকে loop
পদ্ধতিটি প্রচলিত এবং এটি নতুনতম ও আরও কার্যকর উপায়, যেখানে with_items
পুরোনো এবং সামঞ্জস্য বজায় রাখার জন্য রাখা হয়েছে।
loop
ব্যবহারloop
হলো Ansible-এ লুপ চালানোর আধুনিক পদ্ধতি। এটি সাধারণত এক বা একাধিক আইটেমের উপর টাস্ক পুনরাবৃত্তি করার জন্য ব্যবহার করা হয়। এটি সহজ, সরল এবং পড়তে সুবিধাজনক।
নিচে একটি সাধারণ উদাহরণ দেয়া হলো যেখানে একটি সার্ভার-এ একাধিক প্যাকেজ ইনস্টল করা হচ্ছে:
---
- name: Install multiple packages
hosts: all
become: yes
tasks:
- name: Install packages
yum:
name: "{{ item }}"
state: present
loop:
- httpd
- mariadb-server
- php
বিশ্লেষণ:
loop
ব্যবহার করে একাধিক প্যাকেজ (httpd
, mariadb-server
, php
) ইনস্টল করা হচ্ছে।{{ item }}
হলো লুপের প্রতিটি আইটেমের মান, যা প্রতিবার লুপ চলার সময় পরিবর্তিত হয়।loop
এর আরও উদাহরণএকটি ফাইলের মালিকানা পরিবর্তন করতে নিচের মত লুপ ব্যবহার করা যেতে পারে:
---
- name: Change ownership of files
hosts: all
become: yes
tasks:
- name: Set ownership of files
file:
path: "{{ item.path }}"
owner: "{{ item.owner }}"
group: "{{ item.group }}"
mode: "{{ item.mode }}"
loop:
- { path: /var/www/html/index.html, owner: apache, group: apache, mode: '0644' }
- { path: /var/www/html/app.php, owner: apache, group: apache, mode: '0644' }
বিশ্লেষণ:
with_items
ব্যবহারwith_items
হলো লুপ চালানোর পুরোনো পদ্ধতি। এটি loop
এর মত কাজ করে, তবে নতুন সংস্করণগুলোতে loop
ব্যবহারে উৎসাহিত করা হয়। যদিও এটি এখনও কার্যকর, এটি মূলত পুরোনো প্লেবুকগুলোর সাথে সামঞ্জস্য বজায় রাখার জন্য রাখা হয়েছে।
নিচে একটি উদাহরণ দেয়া হলো যেখানে with_items
ব্যবহার করে একাধিক প্যাকেজ ইনস্টল করা হচ্ছে:
---
- name: Install multiple packages
hosts: all
become: yes
tasks:
- name: Install packages
yum:
name: "{{ item }}"
state: present
with_items:
- httpd
- mariadb-server
- php
loop
এবং with_items
এর তুলনাবৈশিষ্ট্য | loop | with_items |
---|---|---|
আধুনিকতা | নতুন এবং প্রচলিত | পুরোনো এবং সামঞ্জস্য বজায় রাখার জন্য |
সিনট্যাক্স | সহজ এবং সরল | কিছুটা বেশি লিখতে হয় |
কার্যকারিতা | অধিক কার্যকর | সাধারণ কার্যকর, তবে পুরোনো পদ্ধতি |
loop
: নতুন এবং আধুনিক পদ্ধতি, যা সাধারণত ব্যবহার করা উচিত।with_items
: পুরোনো পদ্ধতি, যা পুরোনো প্লেবুকগুলোর সামঞ্জস্য রক্ষার জন্য রাখা হয়েছে।Ansible প্লেবুক লেখার সময় loop
ব্যবহার করা হলে কোড আরও সংক্ষিপ্ত এবং কার্যকর হয়। with_items
ব্যবহার করা যায়, তবে নতুন কোড লেখার সময় loop
ব্যবহারে উৎসাহিত করা হয়।
আরও দেখুন...