Ansible আর্কিটেকচার এবং কিভাবে এটি কাজ করে

Ansible হলো একটি ওপেন সোর্স কনফিগারেশন ম্যানেজমেন্ট, সফটওয়্যার ডেপ্লয়মেন্ট, এবং অটোমেশন টুল, যা IT ইনফ্রাস্ট্রাকচারকে ম্যানেজ এবং অটোমেট করতে ব্যবহৃত হয়। এটি Agentless হওয়ার কারণে, এটি SSH প্রটোকলের মাধ্যমে রিমোট মেশিনগুলোর সাথে যোগাযোগ করে এবং কাজ সম্পাদন করে।

Ansible আর্কিটেকচার:

Ansible আর্কিটেকচার মূলত তিনটি প্রধান উপাদান নিয়ে গঠিত:

  1. Control Node
  2. Managed Nodes
  3. Inventory এবং মডিউল/প্লেবুক

1. Control Node:

  • Control Node হল সেই মেশিন যেখানে Ansible ইনস্টল করা থাকে এবং যেখান থেকে সমস্ত কাজগুলো পরিচালিত হয়।
  • Control Node এর মাধ্যমে প্লেবুক, মডিউল এবং টাস্কগুলো ডেফাইন করা হয় এবং তা রিমোট মেশিনগুলোর (Managed Nodes) ওপর এক্সিকিউট করা হয়।
  • Control Node-এ শুধুমাত্র Python এবং Ansible ইনস্টল করা প্রয়োজন, এবং এটি বিভিন্ন Managed Nodes-এর সাথে যোগাযোগ করে তাদের ওপর নির্দেশ পাঠায়।

2. Managed Nodes:

  • Managed Nodes হল রিমোট সার্ভার বা মেশিন যেগুলিকে Ansible দ্বারা ম্যানেজ করা হয়।
  • Ansible এর ম্যানেজড নোডে কোনও এজেন্ট প্রয়োজন হয় না, এটি SSH প্রটোকল এবং Python ব্যবহার করে কনফিগারেশন ম্যানেজমেন্ট এবং অন্যান্য অপারেশন সম্পাদন করে।
  • Managed Nodes গুলোতে Python ইনস্টল থাকতে হয়, যেহেতু Ansible Python স্ক্রিপ্টের মাধ্যমে কমান্ড চালায়।

3. Inventory এবং মডিউল/প্লেবুক:

  • Inventory: এটি একটি ফাইল বা ডাটাবেস, যেখানে Managed Nodes গুলোর IP বা DNS ইনফরমেশন সংরক্ষিত থাকে। সাধারণত এটি /etc/ansible/hosts ফাইলে থাকে, যেখানে সার্ভার বা নোডগুলোকে গ্রুপ করে রাখা হয়।
  • Modules: Ansible Modules হলো কোডের ছোটো টুকরা যা বিভিন্ন টাস্ক পারফর্ম করতে ব্যবহৃত হয়। যেমন: ফাইল কপি করা, সার্ভার রিস্টার্ট করা, প্যাকেজ ইনস্টল করা ইত্যাদি। Ansible প্রায় ৩৫০+ বিল্ট-ইন মডিউল সরবরাহ করে।
  • Playbooks: Playbook হলো YAML ফরম্যাটে লেখা একাধিক টাস্কের কালেকশন। Playbook-এ কিভাবে এবং কোন ক্রমে টাস্ক গুলো এক্সিকিউট হবে তা ডিফাইন করা থাকে।

Ansible কিভাবে কাজ করে:

Ansible-এর কাজের পদ্ধতি মোটামুটি এই রকম হয়:

  1. Playbook Execution:
    • Control Node থেকে Ansible Playbook রান করা হয়, যা YAML ফরম্যাটে লেখা টাস্কের সেট।
  2. Inventory Access:
    • Ansible প্রথমেই Inventor-এর মধ্যে থাকা Managed Nodes গুলোর সাথে SSH এর মাধ্যমে সংযোগ স্থাপন করে।
  3. Module Execution:
    • এরপর Ansible মডিউলগুলো Managed Nodes-এর ওপর রান করে, যার ফলে টাস্কগুলো সম্পাদিত হয়।
  4. Return Output:
    • Managed Nodes থেকে টাস্কের আউটপুট Control Node-এ ফেরত পাঠানো হয় এবং তা রিপোর্ট করা হয়।

Ansible-এর বৈশিষ্ট্য:

  • Agentless: কোনও এজেন্টের প্রয়োজন হয় না, শুধুমাত্র SSH এবং Python ব্যবহার করে।
  • Idempotency: Ansible একই টাস্ক বারবার রান করলেও আউটপুট এক থাকে, মানে কোনো ডুপ্লিকেট কাজ হয় না।
  • Declarative Configuration: YAML এর মাধ্যমে কোন কনফিগারেশন বা টাস্ক কিভাবে করা হবে তা ডিক্লারেটিভ স্টাইলে ডিফাইন করা যায়।
  • Scalability: এটি ছোট থেকে বড় যেকোনো স্কেলের ইনফ্রাস্ট্রাকচার অটোমেশন করতে সক্ষম।

Ansible হলো সহজ, শক্তিশালী এবং বহুমুখী টুল, যা IT অটোমেশন এবং কনফিগারেশন ম্যানেজমেন্টকে আরও সহজ করে তুলেছে।

আরও দেখুন...

Promotion