Ansible-এ হোস্ট ভ্যারিয়েবল এবং গ্রুপ ভ্যারিয়েবল হলো ইনভেন্টরি ফাইলের উপাদান, যা নির্দিষ্ট হোস্ট বা হোস্ট গ্রুপের জন্য কনফিগারেশন বা মান সংরক্ষণ করতে ব্যবহৃত হয়। এগুলো ব্যবহার করে আপনি বিভিন্ন হোস্ট বা গ্রুপের জন্য নির্দিষ্ট কনফিগারেশন তৈরি করতে পারেন, যা প্লেবুক চলাকালে প্রয়োগ করা হয়।
হোস্ট ভ্যারিয়েবল
হোস্ট ভ্যারিয়েবল হলো এক বা একাধিক নির্দিষ্ট হোস্টের জন্য সংরক্ষিত ভ্যারিয়েবল। এটি একটি নির্দিষ্ট হোস্টের জন্য নির্দিষ্ট কনফিগারেশন বা ডেটা প্রদান করে। আপনি ইনভেন্টরি ফাইল বা হোস্ট ভ্যারিয়েবল ফাইলে (যেমন: host_vars/hostname.yml) এই ভ্যারিয়েবলগুলো উল্লেখ করতে পারেন।
উদাহরণ
ইনভেন্টরি ফাইল:
webserver1 ansible_host=192.168.1.10 ansible_user=admin
উপরের উদাহরণে:
webserver1এর জন্য IP ঠিকানা192.168.1.10এবং ইউজারadminহিসেবে উল্লেখ করা হয়েছে।
বা, হোস্ট ভ্যারিয়েবল ফাইল (host_vars/webserver1.yml):
---
ansible_host: 192.168.1.10
ansible_user: admin
app_port: 8080
এখানে:
ansible_hostওansible_userহোস্টের জন্য উল্লেখিত হয়েছে।- অতিরিক্ত ভ্যারিয়েবল
app_portউল্লেখ করা হয়েছে, যা ঐ নির্দিষ্ট হোস্টে ব্যবহৃত হবে।
গ্রুপ ভ্যারিয়েবল
গ্রুপ ভ্যারিয়েবল হলো একটি নির্দিষ্ট হোস্ট গ্রুপের জন্য সংরক্ষিত ভ্যারিয়েবল। আপনি ইনভেন্টরি ফাইলে গ্রুপের জন্য একটি সেকশন তৈরি করে ভ্যারিয়েবলগুলো উল্লেখ করতে পারেন, অথবা group_vars ডিরেক্টরির ভেতরে YAML ফাইলে এগুলো সংরক্ষণ করতে পারেন।
উদাহরণ
ইনভেন্টরি ফাইল:
[webservers]
webserver1 ansible_host=192.168.1.10
webserver2 ansible_host=192.168.1.11
[webservers:vars]
ansible_user=admin
app_port=80
উপরের উদাহরণে:
webserversগ্রুপের সব হোস্টের জন্যansible_userহিসেবেadminএবংapp_portহিসেবে80উল্লেখ করা হয়েছে।
বা, গ্রুপ ভ্যারিয়েবল ফাইল (group_vars/webservers.yml):
---
ansible_user: admin
app_port: 80
db_host: 192.168.1.100
এখানে:
webserversগ্রুপের সব হোস্টের জন্যansible_userএবংapp_portউল্লেখ করা হয়েছে।- অতিরিক্ত ভ্যারিয়েবল
db_hostযুক্ত করা হয়েছে, যা ঐ গ্রুপের সব হোস্টে প্রযোজ্য হবে।
ব্যবহার
হোস্ট এবং গ্রুপ ভ্যারিয়েবলগুলো Ansible প্লেবুক চলাকালে হোস্ট বা গ্রুপ ভিত্তিক কনফিগারেশন তৈরি করতে ব্যবহৃত হয়। এই ভ্যারিয়েবলগুলো ব্যবহার করে আপনি বিভিন্ন হোস্ট বা গ্রুপের জন্য বিভিন্ন কনফিগারেশন অটোমেটেড করতে পারেন, যা প্লেবুক এবং রোলগুলোর মধ্যে ব্যবহার করা হয়।
উদাহরণ প্লেবুক:
---
- name: Deploy web application
hosts: webservers
become: yes
tasks:
- name: Deploy the application
copy:
src: /path/to/app
dest: /var/www/html
- name: Configure the application port
lineinfile:
path: /etc/app/config
regexp: '^port='
line: "port={{ app_port }}"
উপরের প্লেবুকটি app_port ভ্যারিয়েবল ব্যবহার করে নির্দিষ্ট গ্রুপ বা হোস্টের জন্য কনফিগারেশন সেট করবে।
সারাংশ
- হোস্ট ভ্যারিয়েবল: নির্দিষ্ট হোস্টের জন্য কনফিগারেশন সংরক্ষণ করতে ব্যবহৃত হয়।
- গ্রুপ ভ্যারিয়েবল: একটি গ্রুপের সব হোস্টের জন্য সাধারণ কনফিগারেশন সংরক্ষণ করতে ব্যবহৃত হয়।
এইভাবে, হোস্ট এবং গ্রুপ ভ্যারিয়েবল ব্যবহারে আপনি আপনার ইনফ্রাস্ট্রাকচার এবং প্লেবুকের কনফিগারেশন আরও সহজে পরিচালনা করতে পারবেন।
Read more