Ansible রোল (Role) হলো একটি সংগঠিত পদ্ধতি যেখানে টাস্ক, হ্যান্ডলার, ভ্যারিয়েবল, টেম্পলেট, এবং অন্যান্য ফাইলগুলো একটি নির্দিষ্ট কাঠামোতে সাজানো হয়। রোল ব্যবহার করে আপনার প্লেবুকগুলিকে পুনরায় ব্যবহারযোগ্য এবং সহজে পরিচালনাযোগ্য করা যায়। Ansible রোলের একটি নির্দিষ্ট ডিরেক্টরি স্ট্রাকচার আছে যা মেনে চলা উচিত, যাতে Ansible সঠিকভাবে রোল খুঁজে পায় এবং ব্যবহার করতে পারে।
একটি Ansible রোলের সাধারণ ডিরেক্টরি স্ট্রাকচার নিচের মতো হয়:
roles/
└── /
├── defaults/
│ └── main.yml
├── files/
├── handlers/
│ └── main.yml
├── meta/
│ └── main.yml
├── tasks/
│ └── main.yml
├── templates/
├── tests/
│ ├── inventory
│ └── test.yml
├── vars/
│ └── main.yml
└── README.md
defaults/
:
main.yml
ফাইলে ডিফল্ট ভ্যারিয়েবলগুলি উল্লেখ করা হয় যা অন্য ভ্যারিয়েবল দ্বারা ওভাররাইড হতে পারে।files/
:
handlers/
:
main.yml
ফাইলে হ্যান্ডলারগুলো উল্লেখ করা হয়, যেমন: সার্ভিস রিস্টার্ট করা।meta/
:
main.yml
ফাইলে ডিপেন্ডেন্সি বা রোলের ডিপেন্ডেন্সি উল্লেখ করা যায়।tasks/
:
main.yml
ফাইল হলো টাস্কের এন্ট্রিপয়েন্ট, যেখানে রোলের সমস্ত টাস্ক উল্লেখ করা হয়। এটি অন্যান্য টাস্ক ফাইলকেও অন্তর্ভুক্ত করতে পারে।templates/
:
tests/
:
vars/
:
main.yml
ফাইলে রোলের জন্য ব্যবহৃত ভ্যারিয়েবলগুলো উল্লেখ করা হয়। এটি defaults
এর চেয়ে বেশি প্রাধান্য পায়।README.md
:
নিচে একটি উদাহরণ রোলের ডিরেক্টরি স্ট্রাকচার দেয়া হলো, যেখানে একটি webserver
রোল তৈরি করা হয়েছে:
roles/
└── webserver/
├── defaults/
│ └── main.yml
├── files/
│ └── httpd.conf
├── handlers/
│ └── main.yml
├── meta/
│ └── main.yml
├── tasks/
│ └── main.yml
├── templates/
│ └── vhost.conf.j2
├── tests/
│ ├── inventory
│ └── test.yml
├── vars/
│ └── main.yml
└── README.md
এই উদাহরণে:
files/
ডিরেক্টরিতে httpd.conf
নামের একটি কনফিগারেশন ফাইল আছে।templates/
ডিরেক্টরিতে vhost.conf.j2
নামের একটি টেম্পলেট আছে।tasks/
, handlers/
, defaults/
, এবং vars/
ডিরেক্টরিতে যথাক্রমে টাস্ক, হ্যান্ডলার, ডিফল্ট ভ্যারিয়েবল, এবং সাধারণ ভ্যারিয়েবলগুলো সংরক্ষণ করা হয়েছে।Ansible রোলের ডিরেক্টরি স্ট্রাকচার একটি স্ট্যান্ডার্ড কাঠামো অনুসরণ করে, যা রোল ব্যবহারের সময় সহজে এবং সুসংগঠিতভাবে ব্যবহৃত হয়। এই কাঠামোটি মেনে চলার ফলে রোল তৈরি ও ব্যবস্থাপনা করা সহজ হয় এবং প্লেবুক আরও পুনঃব্যবহারযোগ্য হয়।
আরও দেখুন...