Ansible ইনভেন্টরি ফাইল হলো এমন একটি ফাইল যেখানে ম্যানেজ করা হোস্ট (সার্ভার) এবং তাদের গ্রুপিং সংক্রান্ত তথ্য রাখা হয়। Ansible এই ইনভেন্টরি ফাইলের মাধ্যমে নির্ধারণ করে কোন হোস্টে কমান্ড বা প্লেবুক কার্যকর হবে। এটি ম্যানুয়াল প্রক্রিয়ার তুলনায় অটোমেশন এবং অর্গানাইজেশনের একটি সহজ উপায়। ইনভেন্টরি ফাইলের মধ্যে হোস্ট, গ্রুপ এবং ভ্যারিয়েবল সংরক্ষিত থাকে।
ইনভেন্টরি ফাইলের ধারণা
- হোস্ট: এটি একটি নির্দিষ্ট সার্ভার বা মেশিন, যা Ansible ম্যানেজ করে। ইনভেন্টরি ফাইলে হোস্টের আইপি এড্রেস বা ডোমেইন নেম উল্লেখ করা হয়।
- গ্রুপ: গ্রুপ হলো একাধিক হোস্টের একটি কালেকশন, যা একই ধরনের কনফিগারেশন বা সেটিংস প্রয়োগ করতে ব্যবহৃত হয়। উদাহরণস্বরূপ,
webservers,dbserversইত্যাদি গ্রুপ হতে পারে। - ভ্যারিয়েবলস: ভ্যারিয়েবলস ব্যবহার করে নির্দিষ্ট হোস্ট বা গ্রুপের জন্য কনফিগারেশন প্যারামিটার দেওয়া যায়, যেমন
ansible_user,ansible_port,ansible_ssh_private_key_fileইত্যাদি।
ইনভেন্টরি ফাইলের উদাহরণ
১. INI ফরম্যাট উদাহরণ
INI ফরম্যাট সহজ এবং সরাসরি; এটি কিছুটা নিচের মতো হতে পারে:
[webservers]
web1.example.com
web2.example.com
[dbservers]
db1.example.com
db2.example.com
[all:vars]
ansible_user=ubuntu
ansible_ssh_private_key_file=~/.ssh/id_rsa
ব্যাখ্যা:
[webservers]এবং[dbservers]হলো গ্রুপ, যেখানে সংশ্লিষ্ট হোস্টের নাম বা আইপি উল্লেখ করা হয়েছে।[all:vars]হলো গ্লোবাল ভ্যারিয়েবল সেকশন, যা ইনভেন্টরি ফাইলের সব হোস্টের জন্য সাধারণভাবে প্রযোজ্য হবে।
২. YAML ফরম্যাট উদাহরণ
YAML ফরম্যাট আরও স্ট্রাকচারড এবং উন্নত:
all:
hosts:
web1.example.com:
web2.example.com:
db1.example.com:
db2.example.com:
children:
webservers:
hosts:
web1.example.com:
web2.example.com:
dbservers:
hosts:
db1.example.com:
db2.example.com:
vars:
ansible_user: ubuntu
ansible_ssh_private_key_file: ~/.ssh/id_rsa
ব্যাখ্যা:
all:সেকশনে সমস্ত হোস্ট এবং গ্রুপ ডিফাইন করা হয়েছে।children:অংশে গ্রুপগুলো এবং তাদের মধ্যে হোস্টগুলো লিস্ট করা হয়েছে।vars:অংশে গ্লোবাল ভ্যারিয়েবলস উল্লেখ করা হয়েছে যা ইনভেন্টরির সব হোস্টের জন্য প্রযোজ্য।
কাস্টম ইনভেন্টরি ফাইল ব্যবহার করা
কাস্টম ইনভেন্টরি ফাইল ব্যবহার করতে ansible বা ansible-playbook কমান্ডের সাথে -i ফ্ল্যাগ ব্যবহার করা হয়:
ansible-playbook -i inventory_file.yml playbook.yml
এভাবে Ansible-এর ইনভেন্টরি ফাইল ব্যবহারের মাধ্যমে আপনার ইনফ্রাস্ট্রাকচারকে গ্রুপভিত্তিক ভাবে ম্যানেজ ও কনফিগার করতে পারবেন।
Read more